uClibc can not use timezone info from tzdata as-is, but accepts setting
the local timezone in /etc/TZ.
[Peter: strip quotes/use local TZ_LOCALTIME variable] Signed-off-by: Alexandre Belloni <[email protected]>
[[email protected]: make it a blind package; little tweak to help text] Signed-off-by: "Yann E. MORIN" <[email protected]> Signed-off-by: Peter Korsgaard <[email protected]>
This patch modifies the cppcms package in order to support uClibc-based
toolchains.
The booster library by default compiles with the posix backend under
Linux, but this needs monetary.h which isn't provided by uClibc, so
work around that with the help of the DISABLE_POSIX_LOCALE configure
option.
mkostemp() is missing with older version of uClibc (uClibc <= 0.9.33).
So, we need to check if mkostemp() is available.
If not, we use a wrapper function based on mkstemp() to implement it.
Since util-linux v2.23, mkostemp() is called with O_CLOEXEC flag.
If we use a define to mkstemp() to implement mkostemp(), flags will be
discared.
mkstemp() will pass O_RDWR|O_CREAT|O_EXCL, but not O_CLOEXEC, which
means that the file descriptor will no longer be closed automatically
upon exec().
To avoid to discard the flags, we add a call to fcntl() to set O_CLOEXEC
flag just after mkstemp().
Disabling SNMPv3 support also removes the dependency on OpenSSL, which is
pretty large (over 2 MB of uncompressed filesystem size on an ARM926 platform).
BR2_PACKAGE_SNMPPP_SNMPV3 defaults to yes for backward compatibility with
previous Buildroot releases, where SNMPv3 was always enabled.
SNMP++ logging can be overly verbose, and according to the SNMP++
documentation, disabling logging "increases performance drastically and
minimizes memory consumption".
The filename of the SNMP++ sources has changed.
The old one is still working because the server automatically redirects to the
new file, but it is safer to use the official name.
Since commit d1f325f554cab (xzcat: treat as host prerequisite and build if
needed) host-xz is always built when the host does not have xz installed.
Removed all other host-xz dependencies.
[Peter: don't drop for host-squashfs, as that needs libxz development files] Cc: Thomas De Schampheleire <[email protected]> Signed-off-by: Baruch Siach <[email protected]> Reviewed-by: Thomas De Schampheleire <[email protected]> Signed-off-by: Peter Korsgaard <[email protected]>
Romain Naour [Sun, 30 Mar 2014 12:18:50 +0000 (14:18 +0200)]
lttng-libust: Disable liblttng-ust-dl with uClibc.
According to uClibc commit [1], dlinfo is not available.
To be able to use LTTng UST with uClibc, we need to disable
the Dynamic Linker Tracing functionality [2].
Samuel Martin [Sun, 9 Mar 2014 18:54:35 +0000 (19:54 +0100)]
pkg-download: update the github helper
Once again, github updates the source download url.
Even if only the zip archive link is advertised on the repositories'
page, the *.tar.gz is still available.
It is worthy to note that the tarball's content differs depending if
it has been fetched from the former and the new url (the root directory
name changes).
Yann E. MORIN [Sun, 30 Mar 2014 12:59:30 +0000 (14:59 +0200)]
toolchain: print actual version of kernel headers when checking
Since we introduced the _AT_LEAST_XXX for the kernel headers, people
using pre-built custom toolchain now have to specify the version of
the kernel headers their custom toolchain uses.
So, when we detect that there is a mismatch between the selection in
the menuconfig, and the actual version of the headers, we currently
only bail out with a terse message "Incorrect selection of kernel
headers".
This could be confusing some, and getting the version of the headers
used by the toolchain is not trivial (well, it's very easy, but not
trivial.)
This patch changes the way we report the error by moving the message
into the test-code, and by printing the expected and actual versions
of the kernel headers.
BUT! To get this pretty error message, we need to run the
test-program, so we can not use the cross-toolchain, we have to use
the native one.
BUT! The native one has its own linux/version.h header, so we can not
simply include it.
So, we ask the cross-compiler where its default sysroot is, and use
that to then force-feed the cross linux/version.h to the native
toolchain.
[Thomas: augment commit log with a message provided by Yann, fix
coding style to not have spaces after opening parenthesis and before
closing parenthesis, reformatted the message "Incorrect selection..."
to make it fit on one line.]
This option allows to customize the "vendor" part of the
toolchain tuple, where the toolchain tuple has the form
<arch>-<vendor>-<os>-<libc>. Use this option in situations
where gcc might make different decisions based on the vendor
part of the tuple.
[Thomas: move the config option in a slightly different place, so that
it does not appear between the C library selection and the C library
options.]
While investigating on build failure [1], I realized that nut needs mmu since fork() is used.
So, conditions of this build failure are no longer encountered.
Samuel Martin [Sun, 6 Apr 2014 07:35:15 +0000 (09:35 +0200)]
python: fix host-python symlink installation when no python is selected
When no python interpreter is selected, all host-python symlink
installation were disabled.
This could lead to a non-existing $(HOST_DIR)/usr/bin/python program.
package/cryptodev: convert to the virtual-package infrastructure
Since this package is implemented via a choice rather than the usual
separate-package providers, we only need BR2_PACKAGE_HAS_CRYPTODEV
to be always defined when the 'cryptodev' package is selected.
package/jpeg: convert to the virtual-package infrastructure
Since this package is implemented via a choice rather than the usual
separate-package providers, we only need BR2_PACKAGE_HAS_JPEG to be
always defined when the 'jpeg' package is selected.
Package's options should be named after the package.
Lua is an interpreter, but the package is named 'lua'. So we want to
name the config option with '_LUA_', not with '_LUA_INTERPRETER_'
Besides, naming them with '_LUA_INTERPRETER_' might be confusing, since
there is a package named 'luainterpreter'.
Since the renamed options are part of a choice, we can't use the legacy
options to select the new ones. So we instead instruct the user to go
select the appropriate option in the choice.
package/luainterpreter: rename the _HAS and _PROVIDES variables
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, this will allow us to switch luainterpreter to use the
soon-to-be-introduced virtual-package infrastructure.
package/libopenvg: rename the _HAS and _PROVIDES variables
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, renaming the package will allow us to switch libopenvg to use
the soon-to-be-introduced virtual-package infrastructure.
package/libopenmax: rename the _HAS and _PROVIDES variables
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, this will allow us to switch libopenmax to use the
soon-to-be-introduced virtual-package infrastructure.
package/libegl: rename the _HAS and _PROVIDES variables
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, this will allow us to switch libegl to use the
soon-to-be-introduced virtual-package infrastructure.
package/libgles: rename the _HAS and _PROVIDES variables
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, this will allow us to switch libgles to use the
soon-to-be-introduced virtual-package infrastructure.
Max Filippov [Sat, 5 Apr 2014 15:14:16 +0000 (19:14 +0400)]
binutils: drop *.texi* hunks from xtensa trampolines patches
Rebuilding as.info with makeinfo version 5.2 results in a build error,
even with pristine binutils source. Dropping hunks that change *.texi*
files avoids documentation rebuild.
Luca Ceresoli [Thu, 6 Mar 2014 16:54:50 +0000 (17:54 +0100)]
exim: new package
[Thomas:
- use $(INSTALL) instead of install
- add AR and RANLIB variables in the local makefiles, so that the
cross toolchain ar and ranlib utilities are used instead of the
native ones.
- move the init script initialization to the EXIM_INSTALL_INIT_SYSV
variable.
- Use parenthesis instead of curly braces to reference TARGET_DIR.]
The PYTHON3_PATH was incorrectly referencing the site-packages of
Python 2 packages, due to the usage of PYTHON_VERSION_MAJOR, instead
of PYTHON3_VERSION_MAJOR. This commit fixes that by using the correct
variable, which in our testing fixed the build of python-pyasn against
python3.
Samuel Martin [Wed, 5 Mar 2014 22:04:45 +0000 (23:04 +0100)]
crda: override python interperter
During its build, crda calls a python script importing m2crypto module
which requires python2 interpreter.
So, we have a build dependency against host-python.
Also, we make sure this python script is interpreted using the right
python interpreter; we add a patch allowing to enforce this and
explicitly set it.
Samuel Martin [Wed, 5 Mar 2014 22:04:43 +0000 (23:04 +0100)]
scons: force host-python dependency to be python2
Scons build-system needs python2 as interpreter (it does not support
python3 yet).
So, we need to force the host dependency to get the python2 interperter
built and available in the host tree to be able to build host-scons
itself and to build scons-based packages, whatever is the python
interpreter for the target.
This patch also makes sure scons will in be called using the right
python interpreter when invoked via $(SCONS).
Samuel Martin [Wed, 5 Mar 2014 22:04:42 +0000 (23:04 +0100)]
pkg-python: support host-python dependency different from the python in the target
Some packages need a host-python interpreter with a version different
from the one installed in the target to run some build scripts (eg.
scons requires python2 to run, to build any kind of packages even if
the python interpreter selected for the target is python3).
In such cases, we need to add the right host-python dependency to the
package using the host-python-package infrastructure, and we also want
to invoke the right host python interpreter during the build steps.
This patch adds a *_NEEDS_HOST_PYTHON variable that can be set either
to 'python2' or 'python3'. This variable can be set by any package
using the host-python-package infrastructure to force the python
interpreter for the build. This variable also takes care of setting
the right host-python dependency.
This *_NEEDS_HOST_PYTHON variable only affects packages using the
host-python-package infrastructure.
If some configure/build/install commands are overloaded in the *.mk
file, the right python interpreter should be explicitly called.
If the package defines some tool variable (eg.: SCONS), the variable
should explicitly call the right python interpreter.
[Thomas:
- fixes to the commit log and documentation suggested by Yann
- rename the variable from <pkg>_FORCE_HOST_PYTHON to
<pkg>_NEEDS_HOST_PYTHON, as suggested by Yann
- do not allow any other value than python2 and python3 in
<pkg>_NEEDS_HOST_PYTHON, as suggested by Yann.]
Samuel Martin [Wed, 5 Mar 2014 22:04:41 +0000 (23:04 +0100)]
python3: rework python symlinks installation
This patch reworks the way python3 and python3-config symlink are
installed.
Buildroot wants to control these symlinks' installation:
* the python3 symlink should be unconditionally installed in the target
tree, and the python3-config symlink in the staging tree, since it is
the only python package built and installed in the target tree if the
user selected it;
* the python3 and python3-config symlinks should only be installed in
the host tree when python3 is the selection of the user for the
target.
Samuel Martin [Wed, 5 Mar 2014 22:04:40 +0000 (23:04 +0100)]
python: rework python symlinks installation
This change adds a patch to python disabling the installation of the
python and python-config symlinks.
This allows Buildroot to control these symlinks' installation:
* the python symlink should be unconditionally installed in the target
tree, and the python-config symlink in the staging tree, since it is
only built and installed in the target tree if the user selected it;
* the python and python-config symlinks should only be installed in
the host tree when python(2) is the selection of the user for the
target.
Otherwise, when python3 is selected for the target, the host-python
may be required to built some packages. In such cases, the python
symlink should points to python3 (so should the python-config
symlink) to reflect the staging/target tree.
[Thomas: fix comments according to Yann's suggestions, and replaced
python(2) by python2, as suggested by Yann.]
No simple fix was found for now, so reverting is the easiest solution
until some time is found to look at doing a flex bump that doesn't
break those packages.
Handle the optional net-snmp dep or be explicit in disabling it since
since it can pick up a distribution net-snmp-config and pollute
everything. Hopefully fixes:
http://autobuild.buildroot.net/results/5bd/5bdfcf544a83e18d12e27c598084c0ad520d6164/
infra: add to luarocks support for top-level parallel make
The host-luarock dependency is not always satisfied for the extract
phase because the %-extract target is not anymore in the dependency
chain.
To be sure that the dependency is satisfied add the dependency to the
stamp file $(%_TARGET_EXTRACT) instead of the %-extract target.
Eric Le Bihan [Fri, 4 Apr 2014 14:03:34 +0000 (16:03 +0200)]
systemd: revert use of ln relative option.
Systemd build system now uses the `--relative` option from `ln(1)`.
This option was added to GNU coreutils 8.16, which is not widely
deployed yet by GNU/Linux distributions (not available in Debian Wheezy
for example).
Fixes: http://autobuild.buildroot.net/results/354/3546c003a8fcbb36ef5ba29c00a96e473b927ecb/ Signed-off-by: Eric Le Bihan <[email protected]> Signed-off-by: Thomas Petazzoni <[email protected]>
The purpose of "--enable-qt" option is not to build NetworkManager with
Qt support. It's name can be a bit confusing. The real purpose of this
option is to build Qt example programs, so we disable it as we also
disable the tests and documentation in the target.
Yann E. MORIN [Mon, 31 Mar 2014 21:59:57 +0000 (23:59 +0200)]
package/libevas: quick fix to get rid of circular deps
This is a quick workaround against the recently-introduced circular
dependencies hell:
package/xbmc/Config.in:10:error: recursive dependency detected!
package/xbmc/Config.in:10: symbol BR2_PACKAGE_XBMC depends on BR2_PACKAGE_HAS_OPENGL_EGL
package/opengl/libegl/Config.in:1: symbol BR2_PACKAGE_HAS_OPENGL_EGL is selected by BR2_PACKAGE_MESA3D_OPENGL_EGL
package/mesa3d/Config.in:92: symbol BR2_PACKAGE_MESA3D_OPENGL_EGL depends on BR2_PACKAGE_MESA3D
package/mesa3d/Config.in:1: symbol BR2_PACKAGE_MESA3D is selected by BR2_PACKAGE_LIBEVAS_GL
package/efl/libevas/Config.in:149: symbol BR2_PACKAGE_LIBEVAS_GL is part of choice <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol BR2_PACKAGE_LIBEVAS_SDL_GL
package/efl/libevas/Config.in:90: symbol BR2_PACKAGE_LIBEVAS_SDL_GL depends on BR2_PACKAGE_SDL_X11
package/sdl/Config.in:24: symbol BR2_PACKAGE_SDL_X11 depends on BR2_PACKAGE_SDL
package/sdl/Config.in:1: symbol BR2_PACKAGE_SDL is selected by BR2_PACKAGE_PYTHON_PYGAME
package/python-pygame/Config.in:1: symbol BR2_PACKAGE_PYTHON_PYGAME depends on BR2_PACKAGE_PYTHON
package/python/Config.in:1: symbol BR2_PACKAGE_PYTHON is selected by BR2_PACKAGE_XBMC
Until this is properly fixed with the addition of a virtual package for
full-openGL providers, just depend on mesa3d instead of selecting it.
Gustavo Zacarias [Sun, 30 Mar 2014 11:56:30 +0000 (08:56 -0300)]
openswan: fix possible build failure
openswan's Makefile uses gcc instead of $(CC) for gcc version detection
to use advanced warning/error options. The problem is that if the
host gcc version is newish (>=4.6) and the gcc for the target is not it
uses unsupported options.
Max Filippov [Sun, 23 Mar 2014 22:09:32 +0000 (02:09 +0400)]
binutils: backport gas xtensa jump trampolines
This fixes compilation of huge source files that have jumps with offsets
greater than 128 Kbytes, that otherwise fails with such messages:
{standard input}:65267: Error: operand 1 of 'j' has out of range value '131089'
{standard input}:106879: Error: operand 1 of 'j' has out of range value '4294833951'