host-python{, 3}: fix parallel install of libpython
During installation, host-python and host-python3 run the freshly built
python executable. This is done with a proper LD_LIBRARY_PATH to make
sure it picks up the libpython in the build directory. However, the
python binary has an RPATH pointing to the $(HOST_DIR)/usr/lib.
Therefore, if libpython exists there, it will be used instead.
If the install step is run in parallel, it is possible that libpython
is already partially copied to $(HOST_DIR)/usr/lib when python is run.
This gives an error like:
python: error while loading shared libraries: $(HOST_DIR)/usr/lib/libpython3.4m.so.1.0: file too short
The fix is simple: use RUNPATH instead of RPATH, which allows
LD_LIBRARY_PATH to override RUNPATH. That way, the libpython in the
build directory is always used. RUNPATH is enabled by passing
--enable-new-dtags to the linker.
This patch expands the introduction of the "Contributing to buildroot"
section. In general, the intention of this and subsequent patches is to
promote non-feature contributions, like autobuild fixes, bug report
analysis, TODO list work, etc.
The x86_64 answer cache file from commit d191d40e3fd8cef7fbf3168fdc261de8d4b114fd was intended for a previous
draft version of the samba4 package that resided in a different
directory.
The CS PPC 2011.3 and 2010.9 toolchains have a bad linux/socket.h header
that doesn't define sa_family_t which is used by linux/netlink.h (and
libnftnl).
Patching external toolchain headers wouldn't be too nice and they seem
to be the only CS toolchains affected.
It's definitely NOT a kernel header version issue, the toolchain is
based on 2.6.38 headers and vanilla 2.6.38 has the proper definitions in
place. Fixes:
http://autobuild.buildroot.net/results/1e2/1e2cac84f0faa9b8915a628260ef41765d86e174/
wpa_supplicant doesn't use pkg-config and upstream likely wouldn't take
a patch to do so (hostapd/wpa_supplicant are used in android builds, and
it doesn't use any auto* stuff either) so pass it in LIBS* since we
always build openssl with libz support.
Made ugly by the fact that wpa_supplicant uses LIBS for the
wpa_supplicant binary, LIBS_c for the wpa_cli binary and LIBS_p for the
wpa_passphrase binary.
A rebase of Samuel Martin's http://patchwork.ozlabs.org/patch/312320/
hostapd doesn't use pkg-config and upstream likely wouldn't take a patch
to do so (hostapd/wpa_supplicant are used in android builds, and it
doesn't use any auto* stuff either) so pass it in LIBS since we
always build openssl with libz support.
If host-libxslt or some libxslt is around (xsltproc) eudev will try to
build manpages with it. Problem is docbook DTDs might not be around and
things will break. We want no manpages anyway. Fixes:
http://autobuild.buildroot.net/results/c4e/c4e920b16c57e79df979f00cceaea7c0483f043c/
Revert "packages infra: add function to get a Kconfig option"
This reverts commit c28a28eed1943c1efb958448a87a2e8f0baf48d6. The
whole host-lzop optional dependency logic cannot work, since the
configuration file will only be known after the kernel sources are
extracted, if an internal kernel defconfig is used, which is quite
common.
Revert "linux: only depend on host-lzop if needed"
This reverts commit ca80782f4571f004c2b8cf2d0e60e83343beff34. The
whole host-lzop optional dependency logic cannot work, since the
configuration file will only be known after the kernel sources are
extracted, if an internal kernel defconfig is used, which is quite
common.
Revert "linux: check the configuration file exists"
This reverts commit b4cacbf5b15db06132b5f401d39b4c8d4e79158e. The
whole host-lzop optional dependency logic cannot work, since the
configuration file will only be known after the kernel sources are
extracted, if an internal kernel defconfig is used, which is quite
common.
Revert "linux: fix check of configuration file existence"
This reverts commit 477c28cf1d637b224b819dd278103a05fb6f9dbb. The
whole host-lzop optional dependency logic cannot work, since the
configuration file will only be known after the kernel sources are
extracted, if an internal kernel defconfig is used, which is quite
common.
Revert "linux: fix the KCONFIG_GET_OPT calls to be inside a BR2_LINUX_KERNEL test"
This reverts commit 4ad1ea59a59f951fad072dcb19429e6f468abf05. The
whole host-lzop optional dependency logic cannot work, since the
configuration file will only be known after the kernel sources are
extracted, if an internal kernel defconfig is used, which is quite
common.
Revert "i2c-tools: Add i2c-dev.h to staging directory for userspace i2c drivers."
This reverts commit ff673f9a22b1467878f1a117f2c6198e9683d5c7, as the
modified i2c-dev.h from i2c-tools has some definitions that conflict
with the i2c.h from the kernel headers. This means that a userspace
program or library that includes both will fail to build, as is the
case with libsoc.
linux: fix the KCONFIG_GET_OPT calls to be inside a BR2_LINUX_KERNEL test
The KCONFIG_GET_OPT calls added by ca80782f4571f004c2b8cf2d0e60e83343beff34 ('linux: only depend on
host-lzop if needed') are made even if the kernel package is not
selected. This hangs the linux.mk parsing as they try to read from a
file that doesn't exist.
Yann E. MORIN [Sat, 8 Feb 2014 16:26:05 +0000 (17:26 +0100)]
linux: only depend on host-lzop if needed
There is no reason to always depend on host-lzop, even when the kernel
compression is not LZO.
Since LZO is not the default compression option in the kernel (and there
is not sign that will change in the foreseeable future), it will always
appear in a config file, whether it is a complete config file or it is
only a defconfig.
So, only depend on host-lzop if the LZO compression is enabled in the
kernel config file (either the defconfig or the custom config file).
This includes:
- kernel compression itself
- initrd compression
- initramfs compression
Yann E. MORIN [Sat, 8 Feb 2014 16:26:04 +0000 (17:26 +0100)]
packages infra: add function to get a Kconfig option
We so far have no mean to get the value from a Kconfig option from the
.config file of a package (eg. linux, busybox...).
Add a new function that returns the unmangled value of an option.
It expect two arguments:
- the Kconfig option name (complete, with leading CONFIG if necessary)
- the .config file to get it from
Note that, if the Kconfig option is a string, the returned value will
contain the leading and trailing double-quotes.
A new menu and logo for the website, also some of the contents has been
reworked.
This patch also removes files that are no longer used, like the old
stylesheet and a few pages. The content of theses pages has mostly been
merged in other pages or was redudant with the manual.
[Thomas: integrate a few typo fixes noticed by Thomas De
Schampheleire]
Add automatic readline support since it's used when available.
Also add a patch to update to new-style typedefs that were removed from
readline 6.3 that causes build breakage. Fixes:
http://autobuild.buildroot.net/results/b13/b137c237ff6df81dd10f7895278d1f2f5d2326de/
Baruch Siach [Mon, 3 Mar 2014 09:06:50 +0000 (11:06 +0200)]
wget: fix build against uclibc snapshot
Same fix as a728e2fe3 (coreutils: fix build against uclibc snapshot).
uClibc development version adds support for POSIX spawn routines. However,
unlike glibc these routines are in librt. This breaks gnulib autoconf
detection. Teach gnulib autoconf to look for POSIX spawn in librt.
Gustavo Zacarias [Thu, 27 Feb 2014 20:47:10 +0000 (17:47 -0300)]
wpa_supplicant: bump to version 2.1
Now with 802.11ac and P2P support.
CONFIG_LIBNL32 was a hidden option so switch to ENABLE/DISABLE now.
CONFIG_DRIVER_ATMEL was dropped.
CONFIG_DELAYED_MIC is no longer optional.
CONFIG_AP was also hidden so also switch to ENABLE/DISABLE.
CONFIG_EAP_* now blindly enabled instead of doing one per each.
P2P support is unified with the AP mode config knob since it's the more
likely scenario and share code between them.
Gustavo Zacarias [Thu, 27 Feb 2014 20:47:09 +0000 (17:47 -0300)]
wpa_supplicant: modify .config rework order
Switch to first enable and then disable.
Otherwise a wildcard enable can't have a single option disabled which is
far more usual than the opposite (and required for a simple bump to
version 2.1).
This patch updates the manual with more clarified descriptions of tags
Tested-by, Reviewed-by, and Acked-by, as discussed on the Buildroot
developer days in February 2014.
Samba 4.1.x uses the waf build system which isn't very cross-compile
friendly, and also some tests are formulated in a way that isn't
cross-build friendly either by needing to run them.
For this reason the samba4 build system includes a way to define
answers for many of the tests, but this support isn't complete
and some tests still want to be executed.
Samba 4.1.x also requires a proper answers file for each architecture,
and at the moment i've only tested for ARM and PowerPC so only those
architectures are supported to begin with. To add support for another
architecture basically copy one of the cache files to the proper name,
enable it in Config.in and adjust endianess and all of the "size of"
answers. I'm in the process of automating the sizeof and endianess
answers within the samba build system to make them cross friendly
to simplify the answers file to just one generic linux variant.
The 3.6.x branch is still security supported for the forseeable future.
I'm currently working with samba upstream to solve many of these
issues but this will probably happen with the yet unreleased
4.2 branch only.
The original version uses sysconfig from the python interpreter
(normally host-python) which isn't really suited to provide information
of the target python.
Use the pure shell preprocessed backport from the upcoming python 3.4
Bernd Kuhls [Sat, 1 Mar 2014 15:41:11 +0000 (16:41 +0100)]
libdrm: Remove dependency towards X11
Using this defconfig
BR2_x86_pentium_mmx=y
BR2_ENABLE_DEBUG=y
BR2_OPTIMIZE_2=y
BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
# BR2_UCLIBC_INSTALL_UTILS is not set
BR2_BINUTILS_VERSION_2_23_2=y
BR2_GCC_VERSION_4_8_X=y
BR2_PACKAGE_LIBDRM=y
BR2_PACKAGE_LIBDRM_RADEON=y
BR2_PACKAGE_LIBDRM_NOUVEAU=y
BR2_PACKAGE_LIBDRM_VMWGFX=y
libdrm (w/o Intel API) compiles without BR2_PACKAGE_LIBATOMIC_OPS and without
BR2_PACKAGE_XLIB_LIBPCIACCESS, so USE_WCHAR, TOOLCHAIN_HAS_THREADS and
!BR2_PREFER_STATIC_LIB, previously added by the Xorg dependency, do not seem
to be necessary for libdrm at all.
Francois Perrad [Sat, 1 Mar 2014 22:30:55 +0000 (23:30 +0100)]
luarocks: remove luainterpreter dependency
All packages using the luarocks infrastructure need a dependency on
luainterpreter, because having the Lua interpreter for the target is
needed to built native Lua modules. This dependency is already taken
care of in pkg-luarocks.mk.
However, host-luarocks, which is built as a dependency of the extract
step of any luarocks package, also had a dependency on
luainterpreter. Not only this was not necessary, but it was causing
problems with 'make legal-info'. Since 'make legal-info' triggers the
extraction of all packages, as soon as a luarocks package was enabled,
it would trigger the build of host-luarocks, itself triggering the
build of luainterpreter and therefore its dependencies, amongst which
the entire cross-compilation toolchain.
[Thomas: reword commit log to include more detailed explanations.]
The host variant is in preparation for possibly some gnu packages
shipping tar.lz versions only.
At least ed 1.10 did it (still needed to add extraction support for it).
Hardcode the gpg path and detection otherwise it will fail on a host
that doesn't have gnupg installed. Fixes:
http://autobuild.buildroot.net/results/757/757fb0b12af12de4f128d9c503d45b20776c2313/
Also define PHP_AUTOCONF and PHP_AUTOHEADER as other extensions do to
avoid stray issues.
Always prefix the readline directory otherwise autodetection may pick up
the host readline when headers are available and target == host (or are
link-compatible). Fixes:
http://autobuild.buildroot.org/results/44a/44a962623be757143a3d6d37fc6cd14964094f79/
Yann E. MORIN [Sat, 1 Mar 2014 14:53:01 +0000 (15:53 +0100)]
toolchain/external: check kernel headers version for custom toolchain
Ensure the kernel headers version used in the custom external toolchain,
or the manually-specified kernel headers version, matches exactly the one
selected by the user.
We do not care about the patch-level, since headers are not supposed to
change between patchlevels. This applies only to kernels >= 3.0, but
those are actually the ones we do care about; we treat all 2.6.x kernels
as being a single version, since we do not support any 2.6 kernels for
packages with kernel-dependant features.
Yann E. MORIN [Sat, 1 Mar 2014 14:53:00 +0000 (15:53 +0100)]
package/linux-headers: select appropriate 'AT_LEAST_XXX' header version
Select the appropriate BR2_TOOLCHAIN_HEADERS_AT_LEAST_XXX options for the
internal toolchain backend.
For the manualy-specified version, we bring up the choice that sets the
_AT_LEAST_XXX symbols.
[Thomas: rename symbols from BR2_PACKAGE_HOST_LINUX_HEADERS_<version>
to BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_<version> to clearly indicate
that they are used to specify the version of custom headers.]
Yann E. MORIN [Sat, 1 Mar 2014 14:52:59 +0000 (15:52 +0100)]
toolchain/external/custom: add choice to select 'AT_LEAST_XXX' header version
Select the appropriate BR2_TOOLCHAIN_HEADERS_AT_LEAST_XXX options for the
external, custom toolchain backend.
We try to be conservative here, and default to kernel headers 2.6.x.
[Thomas: remove duplicated depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM,
since the choice is already inside a if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
... endif block.]
We now have quite a few packages that depend on the kernel headers to be
at least a certain version. For example, dvb-apps requires at least the
3.3 kernel headers.
Add a set of options that packages can depend on, to check that the kernel
headers match their required version.