Add /etc/profile.d/locale.sh script from Arch Linux to /etc/profile.
This script looks for locale.conf, sources it, and exports the LANG and
LC_* variables.
[Arnout: put in /etc/profile in the skeleton rather than making it
systemd specific.]
gcc5 defaults to -std=gnu11 which changes the inline semantics. This leads to
multiple definition error with 'extern inline'. See
https://gcc.gnu.org/gcc-5/porting_to.html for the details.
Be coherent with all the other ifeq check where there's no space.
>From the doc of Make, it should not cause any trouble, but coherence has
its own merit.
Vivien Didelot [Mon, 13 Jul 2015 18:50:45 +0000 (20:50 +0200)]
board/wandboard: add a genimage config
This patch adds a genimage config file and a post-image script for the
Wandboard, to generate a medium image "sdcard.img", ready to be booted.
The image contains the layout explained in the board readme.txt file:
U-Boot, its environment, and an Ext2 rootfs partition.
The defconfig has been slightly changed to enable this feature. Also
lighten the readme file since the config file is documented and simpler.
Tested on a Wandboard Solo.
Signed-off-by: Vivien Didelot <[email protected]> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
[Arnout: change the name of the tmp dir, and remove it before using
it.] Signed-off-by: Thomas Petazzoni <[email protected]>
Sam bobroff [Tue, 19 May 2015 05:59:56 +0000 (15:59 +1000)]
powerpc-utils: optionally use librtas
Now that librtas is available, optionally use it with powerpc-utils to
enable it's RTAS dependant functionality. It is used by default, as
most distros do, but made optional because it adds several new programs
and significantly increases the size of the installed package.
[Thomas: propagate the glibc dependency from the librtas package, as
suggested by Romain Naour.]
Sam bobroff [Tue, 19 May 2015 05:59:55 +0000 (15:59 +1000)]
librtas: new package
[Thomas:
- make the package depend on glibc, since it needs execinfo.h
- use TARGET_CONFIGURE_OPTS instead of defining manually CC and LD
- add hash file
- remove useless empty newline.
Thanks to Romain Naour for the review!]
Thomas Petazzoni [Sun, 22 Feb 2015 13:39:00 +0000 (14:39 +0100)]
linux: adjust fixup logic for ktap
The ktap package requires some parts of the kernel tracing
infrastructure to be enabled, especially
CONFIG_EVENT_TRACING. However, this option is a blind option in the
kernel, so enabling it in linux.mk has no effect: we need to enable a
non-blind option that selects CONFIG_EVENT_TRACING. We've chosen to
select CONFIG_ENABLE_DEFAULT_TRACERS.
This fixes the build of ktap.
[Thomas: use CONFIG_ENABLE_DEFAULT_TRACERS as suggested by Arnout.]
Alex Suykov [Sat, 23 May 2015 10:02:24 +0000 (13:02 +0300)]
chrony: systemd support
systemd has its own NTP daemon, which must be disabled before
starting chrony. Possible (but unlikely) conflict with openntpd
is not marked in either package.
Thomas Petazzoni [Sat, 11 Jul 2015 12:52:52 +0000 (14:52 +0200)]
binutils: use binutils 2.24 by default on the target
When binutils is not built for the host, binutils.mk decides of the
version to be used when building binutils for the target. We're still
using the old 2.22 binutils version, but it's time to bump up to 2.24,
which we already use as the default version for the host.
The toolchain from the Cavium Networks Octeon SDK provides a sysroot
with library directories lib32, lib32-fp, lib64 and lib64-fp. The -fp
variants are used for processors with hardware floating point unit, such
as the Octeon III variants.
When specifying -march=octeon3 in BR2_TARGET_OPTIMIZATION, the toolchain
will use lib32-fp, but currently Buildroot does not accept that pattern.
This patch improves the matching by accepting lib(32|64)?([^/]*)? as lib
directory name.
Signed-off-by: Bai Yingjie <[email protected]>
[ThomasDS: update commit message] Signed-off-by: Thomas De Schampheleire <[email protected]>
[Thomas: add comment above the function being modified to illustrate
the various cases we try to handle.] Signed-off-by: Thomas Petazzoni <[email protected]>
Guido Martínez [Fri, 21 Nov 2014 16:19:03 +0000 (13:19 -0300)]
pkg-generic.mk: don't depend on external package permissions
Reset permissions for rsynced packages (when using OVERRIDE_SRCDIR) to
755/644. We do this under the assumption that source files shouldn't
care about their permissions, except possibly for the exec bit.
This guarantees that if a package uses 'rsync -a' or 'cp -p' to copy
a file from its build dir to the target, it'll end up with the same
permissions on the target every time.
Since the rsync of skeleton or rootfs now changes the permissions of
the copied files and directories, this may break existing setups that
rely on these permissions being kept. So add a release note explaining
how it should be done.
[Thomas: fixup commit log as suggested by Baruch.]
Guido Martínez [Fri, 21 Nov 2014 16:19:01 +0000 (13:19 -0300)]
Makefile: don't depend on current skeleton/overlay permissions
We use 'rsync -a' to copy the skeleton and overlays, so the target ends
up with the exact same permissions as on the repo. The problem is we
don't track these permissions, since Git doesn't allow for that (except
for the exec bit). This means users with different umasks at the time of
cloning could end up with different target permissions.
Fix this by using --chmod on rsync calls so we don't depend on the
current permission set for the skeleton and overlays. We do depend on
the exec bit, but that's fine since that one is tracked by Git.
If target has connection to the network it might be pretty useful to
have telnet connection to it instead of serial console or even in
addition to serial console.
This changes makes the busybox package automatically install an init
script, and tune the securetty file to make telnetd work when
CONFIG_FEATURE_TELNETD_STANDALONE is enabled in the Busybox
configuration.
[Thomas:
- don't create a new Buildroot Config.in option, just test if
CONFIG_FEATURE_TELNETD_STANDALONE is enabled or not in the Busybox
configuration
- move the securetty tuning in busybox.mk instead of system.mk
- use start-stop-daemon in the init script, in order to properly
implement the stop and restart actions
- misc other minor improvements in the init script.]
[[email protected]:
- don't use securetty
- drop stray variable BUSYBOX_SET_STANDALONE_TELNETD]
securetty is supposed to restrict the terminals root is allowed to
login from. As it happens, login from busybox (w/ securetty support)
is actually enforcing use of securetty, while login from util-linux
is completely ignoring securetty altogether.
Remove securetty from our skeleton altogether and stop worrying about
it.
Guido Martínez [Fri, 21 Nov 2014 16:19:00 +0000 (13:19 -0300)]
Makefile: don't depend on the umask
Some packages and BR itself create files and directories on the target
with cp/mkdir/etc which depend on the umask at the time of building.
To fix this, use a trick inside the Makefile which wraps all rules when
the umask is not 0022. This sets the umask at the top level, and then
the building process continues as usual.
[Thomas: add --no-print-directory, as suggested by Arnout.]
Also, change source of the package to git repository (and remove the hash,
sourceforce is clearly not a platform which can be trusted nowadays)
Rework the startup script to accomodate new rpc.statd
The startup scripts now uses rcp.statd -F for a startup in foreground,
also we avoid starting it twice, it makes rcp.statd crash the whole
script.
[Thomas: add patch to fix rpc.statd foreground/daemon mode backported
from upstream, and fix the S60nfs init script to not use the -F option
of rpc.statd.]
Document the 72 char limit on package description.
While describing a package I though that the tab and 2 spaces was
already doing the margin for wrapping the help test (ie 70 char when
wrapping to 80) but apparently the full text need to fit 72 columns.
So this patch propose to document that fact in the two places where
the Config.in format is described.
Bernd Kuhls [Sat, 2 May 2015 08:17:38 +0000 (10:17 +0200)]
package/x11r7/xlib_libXt: bump version to 1.1.5
Remove part of 0001-util-don-t-link-makestrs-with-target-cflags.patch
because it was applied upstream:
http://cgit.freedesktop.org/xorg/lib/libXt/commit/util/makestrs.c?id=f9baaf55ff8cbd4bf018a34f181eda30d03b20dc
[Thomas:
- switch from 'select BR2_PACKAGE_XORG7' to 'depends on
BR2_PACKAGE_XORG7' as suggested by Yann E. Morin.
- add LGPLv2.1+ in the list of licenses as well as a corresponding
license file, as suggested by Yann E. Morin.]
[Thomas:
- adjust license: it's actually under GPLv2+, plus some bits under
LGPLv2.1+ as noticed by Yann E. Morin, and add another license
file for LGPLv2.1+
- add missing dependency on host-intltool.]
Charles Manning [Sun, 12 Jul 2015 22:00:31 +0000 (00:00 +0200)]
configs: add altera_socdk_defconfig for Altera Cyclone 5 Development Board
This is largely the same as altera_sockit_defconfig.
It uses a fresher Linux and u-boot than SocKit. It also speeds the
serial port up to 115200.
The post-image script is generalized by adding
BR2_ROOTFS_POST_SCRIPT_ARGS and moving it up the altera directory.
Similarly, the readme is moved up and made more generic.
When systemd is used, /var/lib/dbus becomes dangling symlink, because
nobody does mkdir /tmp/dbus, so /var/lib/dbus/machine-id could not be
written. On SysVinit systems there is init script that creates
/tmp/dbus.
This patch preserves old behavior for SysVinit systems, and introduces
new one for systemd-booted systems: /var/lib/dbus is a persistent
directory, it holds symlink /var/lib/dbus/machine-id -> /etc/machine-id
as machine-id(5) suggests, and /etc/machine-id is managed by systemd.
Thomas Petazzoni [Sun, 12 Jul 2015 22:45:07 +0000 (00:45 +0200)]
Revert "rsyslog: fix config file comment style"
This reverts commit d42f0f96aa13bc160bdfeb40ca75f53adb7af64e, which
breaks the build since the patch being added by this commit is in fact
already part of the 8.9.0 rsyslog release we are using.
Thomas Petazzoni [Sun, 12 Jul 2015 22:40:28 +0000 (00:40 +0200)]
flite: fix <pkg>_LICENSE_FILES
Following commit dd4bcebd7c43212650cccc2494527dc3d69024d9 ("flite: use
FLITE_STRIP_COMPONENTS and FLITE_SUBDIR"), the FLITE_LICENSE_FILES was
no longer pointing to existing directories, which was breaking
legal-info.
Systemd depends on mount and nologin from util-linux. Mount from busybox
is not fine, because its behavior differs from util-linux mount. Busybox
mount does not handle correctly 'mount / -o remount' (should apply
options from /etc/fstab). Nologin should be present, because
systemd-sysusers uses it as shell for newly created system users.
Guillaume GARDET [Tue, 18 Nov 2014 14:54:47 +0000 (15:54 +0100)]
c-icap-modules: new package
[Thomas:
- Do not pass custom CFLAGS and remove the hacks on the Makefile:
since the c-icap-config script is now fixed, it returns correct
values, and the hacks are no longer needed.
- Add optional dependency on zlib and berkeleydb.
- Explicitly disable clamav support.]
package: Remove shell completion at finalize stage
Instead of doing a removal of the completion file package per package,
do it all at the finalize stage so it's done once and for all.
Note: This fixes an issue with systemd where passing a --bashcompletiondir
or --zshcompletiondir would be evaluated to '.' by the autotools macro.
This would create a 'target./' directory.
Eric Le Bihan [Sun, 12 Jul 2015 17:27:01 +0000 (19:27 +0200)]
Fix selection of bootloaders from $(BR2_EXTERNAL)
If a package is based on "generic-package", pkg-generic.mk will compute
the name of the Kconfig variable to use for checking if this package has
been selected by the user.
Unfortunately, this mechanism does not take into account the case where
a bootloader is declared in a $(BR2_EXTERNAL)/boot directory.
So, even if the bootloader has been selected, it will not be added to
$(TARGETS) and will not be built.
This patch fixes this issue.
[Arnout: use single filter line, also apply this to toolchain]
Thomas Petazzoni [Sun, 12 Jul 2015 16:34:42 +0000 (18:34 +0200)]
arch: aarch64 always has a MMU
Following the addition of AArch64 big endian, the AArch64 little
endian option had lost its 'select BR2_ARCH_HAS_MMU_MANDATORY', so
let's reintroduce it.
flite: use FLITE_STRIP_COMPONENTS and FLITE_SUBDIR
So far, to overcome the buggy way the flite tarball is made, we had to
override the extract commands in a rather ugly way.
The newly introduced <PKG>_STRIP_COMPONENTS, along with <PKG>_SUBDIR and a
little edit to the patches, allow to remove the custom FLITE_EXTRACT_CMDS,
slightly simplifying the flite.mk code.
It was pointing to version 51.x which wouldn't work well with 55.x.
Point it to the latest version that matches the current buildroot
version (55). When a new ICU major version is released a link for the
"old" 55 version will be available below as is it currently for
previous versions such as 54, 53 and so on.
Commit a3365ebf72fc34c71e28191f107280b9d7c825a1 is indeed
insufficient, since kismet uses <dlfcn.h> in two places, both in
kismet_server and kismet_client. And it's fairly unlikely that kismet
will be used in pure static environments, so let's not support this
use case.
[Thomas:
- Do not define QPID_PROTON_VERSION_MAJOR, and use proto-* instead,
as suggested by Arnout.
- Use QPID_PROTO_VERSION in QPID_PROTON_SITE, as suggested by
Arnout
- Remove useless comma in the openssl test, as suggested by Arnout
- Change the post install target hook to remove the
/usr/share/proton-*/ directory entirely, and not just the
examples, since it only contains some license and documentation
files.]
Thomas Petazzoni [Sun, 12 Jul 2015 11:35:55 +0000 (13:35 +0200)]
pkg-generic: fix fallout of <pkg>_STRIP_COMPONENTS introduction
The introduction of <pkg>_STRIP_COMPONENTS broke the build of the
target tar package, because support/dependencies/check-host-tar.mk
defines TAR_STRIP_COMPONENTS to --strip-components. Which leads to
have the package infrastructure do:
Which obviously doesn't work really well. And in fact the
TAR_STRIP_COMPONENTS definition in
support/dependencies/check-host-tar.mk is no longer necessary: it was
needed in the days where we were trying to support old tar versions
that did not support --strip-components. But nowadays, when such an
old tar version is encountered, we build our own host-tar which
supports --strip-components.
Thomas Petazzoni [Sun, 12 Jul 2015 10:43:29 +0000 (12:43 +0200)]
c-icap: disable Perl support
The Perl support in c-icap does not build properly, because it queries
the system-installed Perl for cflags/ldflags, which returns things
like -I/usr/local/include causing build failures since those are
invalid paths when cross-compiling.
Since there is no easy way to fix that without changing c-icap
configure.in, let's disable the Perl support for now, until someone is
interested enough to fix this up.
We have a patch that makes ocf-linux' Makefile basically only call to
the Linux buildsystem, with commands basically like:
make -C $(LINUX_DIR) M=$(pwd) modules
which is basically what our new kernel-module infra basically does.
Remove our patch since it is basically no longer needed.
package/cryptodev-linux: use the kernel-module helper
The kernel module needs the version.h headers at build-time, but the
Makefile only generates it when the module is built with that Makefile,
because it has this rule:
build: version.h
make ${KERNEL_MAKE_OPTS} modules
So, we must explicitly build this header, which we do in a pre-build hook
to ensure it comes before the kernel-module's own hooks. This header needs
not be installed in staging.
However, the cryptodev.h header still needs to be installed in staging,
which we still do in a staging-install command.
The KERNEL_DIR and PREFIX variables are no longer needed, because we're
no longer calling the rules that needed them (build, above, and
modules_install, both now handled by the kernel-module infra).
lttng-modules' Makefile already uses the Linux buildsystem to build its
modules, so just switch to using the new kernel-module infra.
To be noted: lttng-modules' Makefile uses $(shell pwd) that expects the
PWD to be the Linux' top build directory, which is not the case for us.
However, it uses to detect a conflict between a stale static version.h
and a generated version.h (due to the switch to uapi). This is of no
consequence to us, because we can't have a Linux build directory with
such stale files.
The Linux kernel offers a nice and easy-to-use infra to build
out-of-tree kernel modules.
Currently, we have quite a few packages that build kernel modules, and
most duplicate (or rewrite) the same code over-and-over again.
Introduce a new infrastructure that provides helpers to build kernel
modules, so packages do not have to duplicate/rewrite that.
The infrastructure, unlike any other package infra, is not standalone.
It needs another package infra to be used. This is so that packages that
provide both userland and kernel modules can be built easily. So, this
infra only defines post-build and post-install hooks, that will build
the kernel modules after the rest of the package.
We need to override PWD, because some packages will use it to find their
own includes (and other helper files). PWD is inherited from the
environment, so it gets whatever value it had when make was launched,
which happens to be Buildroot's own top source tree. So, we just force
PWD to the proper value, rather than cd-ing first.
Also, no host version is provided, since it does not make sense to build
kernel modules for the host.
Add <PKG>_STRIP_COMPONENTS for packages with non-standard tarballs
Usually package tarballs contain only a directory named
"<pkg-name>-<pkg-version>" which contains the actual source tree. To properly
extract the source files in $(BUILD_DIR), Buildroot passes the
--strip-components=1 option to tar.
Unfortunately a few packages ship in a non-standard way, with no root
directory or with more than one. In Buildroot these packages must be handled by
overriding the <PKG>_DOWNLOAD_CMDS.
As the number of such packages is growing, introduce a <PKG>_STRIP_COMPONENTS
variable for packages to request a number of components to strip different
from 1.