Go to file
Thomas Petazzoni db4919bcac getent: new package
The ecryptfs-utils scripts require the 'getent' program to be
installed to find the home directory of users. However, Buildroot
currently never installs this program, and therefore bug #7142 was
reported, explaining that ecryptfs-utils is not working properly.

In normal Linux systems, the getent program is provided by glibc, and
allows to query not only /etc/passwd, but also other NSS databases
such as LDAP and others.

In the context of Buildroot, this gives us several cases:

 1/ Internal toolchain

    a/ glibc/eglibc. In this case, the getent program is already built
       and installed by Buildroot in the staging directory, so the
       only thing missing is installing it in the target directory.

    b/ uclibc. uClibc provides a simple shell script that emulates the
       behavior of getent. It is located in extra/scripts/getent in
       the uClibc sources, but is currently never installed.

    c/ musl. There seems to be no getent implementation, and musl does
       not support NSS.

 2/ External toolchain

    a/ glibc/eglibc. In several external toolchains that we tested,
       there is a pre-built getent binary available in the sysroot,
       but Buildroot is not installing it to the target.

    b/ uclibc. The getent wrapper script is typically not part of any
       external uClibc toolchain.

    c/ musl. There is no getent implementation.

This patch proposes to solve this problem by introducing a getent
package, which has the following behavior:

 - When the toolchain is glibc based (either internal or external), it
   installs the getent program that was built and installed in the
   staging directory. This covers cases 1/ a/ and 2/ a/ above.

 - When the toolchain is uclibc or musl based, it installs a version
   of uclibc's getent wrapper script that is built into the getent
   package. This script is unlikely to change over time, so having it
   directly built into the package should not cause much issues moving
   forward. This covers all other cases above.

This solution allows to install a NSS-capable getent when glibc/eglibc
is used, and otherwise to rely on uClibc's wrapper script.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-12 18:28:46 +02:00
arch arch: remove BR2_arm10t 2014-09-18 22:09:05 +02:00
board beaglebone: better support for starting and creating images 2014-10-12 18:27:49 +02:00
boot grub2: modify kernel location to /boot/zImage 2014-10-11 14:55:20 +02:00
configs beaglebone: better support for starting and creating images 2014-10-12 18:27:49 +02:00
docs docs/manual: slightly improve faq entry about compiler on target 2014-10-12 17:27:02 +02:00
fs .mk files: bulk aligment and whitespace cleanup of assignments 2014-10-07 15:00:28 +02:00
linux .mk files: bulk aligment and whitespace cleanup of assignments 2014-10-07 15:00:28 +02:00
package getent: new package 2014-10-12 18:28:46 +02:00
support scripts/graph-build-time: properly warn about missing modules 2014-10-12 17:23:06 +02:00
system system: add option to choose what /bin/sh points to 2014-10-12 15:51:38 +02:00
toolchain toolchain: external 3.17 headers typo fix 2014-10-09 13:25:23 +02:00
.defconfig buildroot: get rid of s390 support 2009-01-12 14:36:14 +00:00
.gitignore update gitignore 2013-05-04 12:41:55 +02:00
CHANGES Update for 2014.08 2014-09-01 13:20:56 +02:00
Config.in BR2_DEPRECATED: update option label and help 2014-09-19 23:12:49 +02:00
Config.in.legacy package/linux-firmware: install Xceive/Cresta xc4000 and xc5000c 2014-09-21 21:15:03 +02:00
COPYING clarify license and fix website license link 2009-05-08 09:29:41 +02:00
Makefile Makefile: make help: remove <package>- help, add link to online manual 2014-10-12 12:37:56 +02:00
Makefile.legacy Makefile.legacy: fix recursive invocation with BUILDROOT_DL_DIR and _CONFIG 2014-02-11 08:14:57 +01:00
README docs: Move README file to root 2014-03-03 21:28:39 +01:00

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) Use your shiny new root filesystem. Depending on which sort of
    root filesystem you selected, you may want to loop mount it,
    chroot into it, nfs mount it on your target device, burn it
    to flash, or whatever is appropriate for your target system.

You do not need to be root to build or run buildroot.  Have fun!

Offline build:
==============

In order to do an offline-build (not connected to the net), fetch all
selected source by issuing a
$ make source

before you disconnect.
If your build-host is never connected, then you have to copy buildroot
and your toplevel .config to a machine that has an internet-connection
and issue "make source" there, then copy the content of your dl/ dir to
the build-host.

Building out-of-tree:
=====================

Buildroot supports building out of tree with a syntax similar
to the Linux kernel. To use it, add O=<directory> to the
make command line, E.G.:

$ make O=/tmp/build

And all the output files (including .config) will be located under /tmp/build.

More finegrained configuration:
===============================

You can specify a config-file for uClibc:
$ make UCLIBC_CONFIG_FILE=/my/uClibc.config

And you can specify a config-file for busybox:
$ make BUSYBOX_CONFIG_FILE=/my/busybox.config

To use a non-standard host-compiler (if you do not have 'gcc'),
make sure that the compiler is in your PATH and that the library paths are
setup properly, if your compiler is built dynamically:
$ make HOSTCC=gcc-4.3.orig HOSTCXX=gcc-4.3-mine

Depending on your configuration, there are some targets you can use to
use menuconfig of certain packages. This includes:
$ make HOSTCC=gcc-4.3 linux-menuconfig
$ make HOSTCC=gcc-4.3 uclibc-menuconfig
$ make HOSTCC=gcc-4.3 busybox-menuconfig

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org