2012-01-28 18:42:49 +01:00
|
|
|
menu "Host utilities"
|
|
|
|
|
2016-02-05 02:12:52 +01:00
|
|
|
source "package/aespipe/Config.in.host"
|
2015-11-23 17:27:12 +01:00
|
|
|
source "package/android-tools/Config.in.host"
|
2018-08-21 18:04:11 +02:00
|
|
|
source "package/btrfs-progs/Config.in.host"
|
2018-02-04 19:07:47 +01:00
|
|
|
source "package/cargo/Config.in.host"
|
2016-03-17 16:03:57 +01:00
|
|
|
source "package/cbootimage/Config.in.host"
|
2015-01-07 18:10:36 +01:00
|
|
|
source "package/checkpolicy/Config.in.host"
|
2018-08-14 03:17:56 +02:00
|
|
|
source "package/checksec/Config.in.host"
|
2017-09-19 12:43:49 +02:00
|
|
|
source "package/cmake/Config.in.host"
|
2014-10-11 13:05:35 +02:00
|
|
|
source "package/cramfs/Config.in.host"
|
2017-10-05 17:06:21 +02:00
|
|
|
source "package/cryptsetup/Config.in.host"
|
2018-11-09 01:38:55 +01:00
|
|
|
source "package/dbus-python/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/dfu-util/Config.in.host"
|
2014-09-11 12:08:44 +02:00
|
|
|
source "package/dos2unix/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/dosfstools/Config.in.host"
|
2020-02-11 22:33:52 +01:00
|
|
|
source "package/doxygen/Config.in.host"
|
2015-10-03 21:44:12 +02:00
|
|
|
source "package/dtc/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/e2fsprogs/Config.in.host"
|
|
|
|
source "package/e2tools/Config.in.host"
|
2020-03-16 02:58:37 +01:00
|
|
|
source "package/erofs-utils/Config.in.host"
|
package/eudev: introduce a host variant
eudev and systemd provide a hardware database (hwdb) as a set of
multiple files. Various other utilities may also use that database.
Those files have to be "compiled" into a binary to be useful; libudev
(and thus all utilities based on it) only use the compiled hwdb.
Compiling the hwdb is done with udevadm, using the hwdb sub-command:
udevadm hwdb --update
Provide a simple host-variant of eudev, so that we can call udevadm at
build time.
When it is configured, eudev will shoehorn its --prefix path as the base
location where the .hwdb file will be searched from, as well as where
the hwdb.bin will be generated in. This means that with the usual
--prefix=$(HOST_DIR), it would look into there.
udevadm also accepts a --root=/path option at runtime, which prepends
/path to all the paths it uses to find and generate files.
Obviously, combining --root=$(TARGET_DIR) and --prefix=$(HOST_DIR) would
not do what we want: all files would be searched for, and generated, in
$(HOST_DIR)$(TARGET_DIR)/ . Avoiding use of --root would not help much
either, as files would still searched in $(HOST_DIR) (we could use a
trick to copy files there, generate and then move the hwdb.bin, but
that's not nice).
However, since we only need udevadm, and since udevadm has no internal
and no external dependency, we can use a less dirty trick and configure
host-eudev with --prefix=/usr (and similar for the other paths), manually
copy udevadm to HOST_DIR, and then use --root when calling it.
Then, we get a udevadm that can read files from, and generate files into
$(TARGET_DIR). We register a target-finalize hook to generate the
hwdb.bin, so that any pakage may install its .hwdb files (currently only
eudev and systemd do, but other packages might (e.g. sane is known to do
so on standard desktop distros))
The *.hwdb source files consume a lot of space, roughly the same as the
generated database, i.e. ~8MiB as of today, and they are totally useless
on the target; only the generated hwdb.bin is useful. So we want to get
rid of them.
However, we also want to be able to complete a build (e.g. make
foo-reinstall to reinstall more hwdb files), so we don't want to
irremediably lose them. As such, we register a pre-rootfs-cmd hook, that
removes them just before assembling the filesystems, when we're only
using a copy of the target directory.
Note that this is the first host package to register a target-finalize
hook, and also the first to register a pre-rootfs-cmd hook. This avoids
duplicating these hooks logic in both eudev and systemd.
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Carlos Santos <unixmania@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2019-10-29 23:07:53 +01:00
|
|
|
source "package/eudev/Config.in.host"
|
2020-04-17 22:14:05 +02:00
|
|
|
source "package/exfatprogs/Config.in.host"
|
2018-10-26 22:00:15 +02:00
|
|
|
source "package/f2fs-tools/Config.in.host"
|
2015-05-12 10:51:31 +02:00
|
|
|
source "package/faketime/Config.in.host"
|
2019-05-21 22:40:14 +02:00
|
|
|
source "package/fatcat/Config.in.host"
|
2016-04-05 21:32:15 +02:00
|
|
|
source "package/fwup/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/genext2fs/Config.in.host"
|
|
|
|
source "package/genimage/Config.in.host"
|
|
|
|
source "package/genpart/Config.in.host"
|
2017-12-11 18:04:29 +01:00
|
|
|
source "package/gnupg/Config.in.host"
|
2016-04-04 21:31:49 +02:00
|
|
|
source "package/go/Config.in.host"
|
2017-11-07 23:10:59 +01:00
|
|
|
source "package/go-bootstrap/Config.in.host"
|
2017-11-26 15:40:19 +01:00
|
|
|
source "package/google-breakpad/Config.in.host"
|
2015-12-09 00:20:23 +01:00
|
|
|
source "package/gptfdisk/Config.in.host"
|
2019-02-19 14:15:29 +01:00
|
|
|
source "package/imagemagick/Config.in.host"
|
2018-03-10 12:51:39 +01:00
|
|
|
source "package/imx-mkimage/Config.in.host"
|
2015-05-01 18:15:40 +02:00
|
|
|
source "package/imx-usb-loader/Config.in.host"
|
2015-10-19 12:42:09 +02:00
|
|
|
source "package/jq/Config.in.host"
|
2016-07-02 11:35:38 +02:00
|
|
|
source "package/jsmin/Config.in.host"
|
package/libp11: new package
Library for using PKCS#11, which includes an engine for OpenSSL that
lets it use PKCS#11 modules. Which is really what this package is
about, not that libp11 library itself, which has no users outside the
of OpenSSL engine.
If p11-kit is enabled, configure the engine to use that as the default
PKCS#11 module. That module is a sort of multiplexer that allows
multiple modules to be used at once, so it makes sense to use it even
if there are other modules present, e.g. softhsm2, nssckbi,
pkcs11-proxy, ykcs11, etc.
A host package is created too, with a host configuration option.
Since this a dynamically loaded module, there is no build time reason
to select it from a host package. It could be used by host openssl,
to allow host rauc to sign a software update bundle using a key from a
HSM with a PKCS#11 interface.
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
Tested-by: Frank Hunleth <fhunleth@troodon-software.com>
[Thomas:
- add entry in DEVELOPERS file
- add missing !BR2_STATIC_LIBS dependency
- fix license information, as noticed by Frank Hunleth
- add missing dependency on host-pkgconf, needed by the configure
script to detect openssl
- explicitly pass --with-enginesdir as the value returned by
pkg-config is incorrectly prefixed by the sysroot]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-12-07 19:13:30 +01:00
|
|
|
source "package/libp11/Config.in.host"
|
2019-07-24 19:35:36 +02:00
|
|
|
source "package/lld/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/lpc3250loader/Config.in.host"
|
2016-11-02 07:55:07 +01:00
|
|
|
source "package/lttng-babeltrace/Config.in.host"
|
2019-02-06 14:23:59 +01:00
|
|
|
source "package/mender-artifact/Config.in.host"
|
2016-10-26 18:08:02 +02:00
|
|
|
source "package/mfgtools/Config.in.host"
|
2016-10-07 18:59:11 +02:00
|
|
|
source "package/mkpasswd/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/mtd/Config.in.host"
|
|
|
|
source "package/mtools/Config.in.host"
|
2016-07-07 19:49:23 +02:00
|
|
|
source "package/mxsldr/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/omap-u-boot-utils/Config.in.host"
|
|
|
|
source "package/openocd/Config.in.host"
|
2017-02-06 15:57:43 +01:00
|
|
|
source "package/opkg-utils/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/parted/Config.in.host"
|
2014-07-31 00:57:16 +02:00
|
|
|
source "package/patchelf/Config.in.host"
|
2020-03-10 10:58:16 +01:00
|
|
|
source "package/pigz/Config.in.host"
|
2017-09-19 13:05:27 +02:00
|
|
|
source "package/pkgconf/Config.in.host"
|
2016-12-02 05:22:41 +01:00
|
|
|
source "package/pru-software-support/Config.in.host"
|
2014-07-01 13:42:03 +02:00
|
|
|
source "package/pwgen/Config.in.host"
|
2019-09-20 16:59:39 +02:00
|
|
|
source "package/python/Config.in.host"
|
2018-05-07 05:00:31 +02:00
|
|
|
source "package/python-cython/Config.in.host"
|
2017-02-01 18:51:08 +01:00
|
|
|
source "package/python-lxml/Config.in.host"
|
2017-09-13 15:20:55 +02:00
|
|
|
source "package/python-six/Config.in.host"
|
2017-10-20 22:34:34 +02:00
|
|
|
source "package/python-xlrd/Config.in.host"
|
2019-09-20 16:59:39 +02:00
|
|
|
source "package/python3/Config.in.host"
|
2014-12-10 23:11:58 +01:00
|
|
|
source "package/qemu/Config.in.host"
|
2016-12-05 21:59:06 +01:00
|
|
|
source "package/raspberrypi-usbboot/Config.in.host"
|
2017-06-29 21:08:11 +02:00
|
|
|
source "package/rauc/Config.in.host"
|
2019-01-16 13:39:52 +01:00
|
|
|
source "package/rcw/Config.in.host"
|
2018-02-04 19:07:40 +01:00
|
|
|
source "package/rustc/Config.in.host"
|
2017-03-16 22:37:58 +01:00
|
|
|
source "package/s6-rc/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/sam-ba/Config.in.host"
|
2019-08-07 21:12:00 +02:00
|
|
|
source "package/sdbusplus/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/squashfs/Config.in.host"
|
|
|
|
source "package/sunxi-tools/Config.in.host"
|
2018-08-31 02:37:57 +02:00
|
|
|
source "package/swig/Config.in.host"
|
package/systemd: add host variant
Add the infrastructure to build the host version of systemd
* disable all optional features, they can be re-added when needed
* systemd has creative way of dealing with cross compile
we build a "normal" host systemd, but install it in $HOST_DIR
we use systemctl --root to correctly act on TARGET_DIR
* we need to adjust RPATH using patchelf because meson can't do it
correctly by itsel
The first question is: why do we use --prefix=/usr ?
systemd will store its --prefix in all the executables it generates. As
such, systemctl will have a hardcoded 'prefix', where it will manipulate
and create files/symlinks in. When called natively, this is nice and
shinny.
However, for cross-setup, that does not work obviously.
So, systemd has its tools know about the 'root' directory where this
prefix should be related to. We can call systemctl --root=$(TARGET_DIR)
and systemctl wil do the links and such in there.
However, it does so by appending its known prefix to it.
So, if we were to configure host-systemd as we usually do, with
--prefix=$(HOST_DIR), then when we would call host systemctl --root=$(TARGET_DIR)
it would look for files in $(TARGET_DIR)/$(HOST_DIR), which is wrong.
Calling the host systemctl without --root is also wrong, as it would look for
files in $(HOST_DIR)
So, there is no satisfying official support for this case.
The trick then, is to configure systemd with the prefix it would expect
at runtime (on the target!), that is with /usr, but install out-of-tree.
That was it for the first part of the question: why do we use --prefix.
Now, the second question is: why do we need to muck up with the rpath
after installation?
Well, this boils down to meson (and not systemd itself). When it
installs executables, meson will handily insert whatever rpath the
package meson.build would tell it to use. systemd installs libs in
$(prefix)/lib/systemd and has a NEEDED to those libs, so it uses an
RPATH to find those libs, and meson does inject that RPATH into the
installed executables.
However, we Buildroot also want to insert our own RPATH, because systemd
uses util-linux' libs and libcap, installed in $(HOST_DIR), so it needs
our RPATH.
However, meson can not extend the RPATH from the LDFLAGS in the
environment; meson can only set the RPATH from what it knows about from
the package's meson.build.
That, in addition to the --prefix=/usr issue above, means that the
executables installed by host-systemd have an RPATH set to
/usr/lib/systemd. when we would want it to be set to
$(HOST_DIR)/lib:$(HOST_DIR)/lib/systemd
That's what is done in the post-install hook: set the RPATH to the
appropriate values.
Signed-off-by: Jérémy Rosen <jeremy.rosen@smile.fr>
[yann.morin.1998@free.fr:
- reformatting in commit log
- declare host variant after target variant
- simplify comments
- slight reordering of variable (HOST_SYSTEMD_NINJA_ENV moved)
- reformatting for mutli-line variable (HOST_SYSTEMD_HOST_TOOLS)
- don't split HOST_SYSTEMD_CONF_OPTS in two sets
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2019-12-16 11:30:40 +01:00
|
|
|
source "package/systemd/Config.in.host"
|
2016-03-17 16:03:56 +01:00
|
|
|
source "package/tegrarcm/Config.in.host"
|
2016-12-02 05:22:40 +01:00
|
|
|
source "package/ti-cgt-pru/Config.in.host"
|
2014-05-08 23:35:43 +02:00
|
|
|
source "package/uboot-tools/Config.in.host"
|
|
|
|
source "package/util-linux/Config.in.host"
|
2019-02-04 14:10:23 +01:00
|
|
|
source "package/utp_com/Config.in.host"
|
2015-12-25 22:40:10 +01:00
|
|
|
source "package/vboot-utils/Config.in.host"
|
2016-03-16 14:55:15 +01:00
|
|
|
source "package/xorriso/Config.in.host"
|
2016-02-05 18:09:40 +01:00
|
|
|
source "package/zip/Config.in.host"
|
2018-07-04 09:07:37 +02:00
|
|
|
source "package/zstd/Config.in.host"
|
2012-01-28 18:42:50 +01:00
|
|
|
|
2012-01-28 18:42:49 +01:00
|
|
|
endmenu
|