summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.26.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.26.bb')
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.26.bb73
1 files changed, 73 insertions, 0 deletions
diff --git a/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.26.bb b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.26.bb
new file mode 100644
index 000000000..5668aaac5
--- /dev/null
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.26.bb
@@ -0,0 +1,73 @@
1# Copyright (c) 2022, Snap Inc.
2# Released under the MIT license (see COPYING.MIT for the terms)
3SUMMARY = "coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust"
4HOMEPAGE = "https://github.com/uutils/coreutils"
5LICENSE = "MIT"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=e74349878141b240070458d414ab3b64"
7
8inherit cargo cargo-update-recipe-crates
9
10SRC_URI += "git://github.com/uutils/coreutils.git;protocol=https;branch=main"
11
12# musl not supported because the libc crate does not support functions like "endutxent" at the moment,
13# so src/uucore/src/lib/features.rs disables utmpx when targetting musl.
14COMPATIBLE_HOST:libc-musl = "null"
15
16SRCREV = "f95f363096610d7e5e1556d6d0a32b5018065c4c"
17S = "${WORKDIR}/git"
18
19require ${BPN}-crates.inc
20
21PROVIDES = "coreutils"
22RPROVIDES:${PN} = "coreutils"
23
24PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
25
26PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
27
28CARGO_BUILD_FLAGS += "--features unix"
29CARGO_BUILD_FLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', '--features feat_selinux', '', d)}"
30
31DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'clang-native libselinux-native', '', d)}"
32
33export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
34export SELINUX_LIB_DIR = "${WORKDIR}/recipe-sysroot-native${libdir}"
35export SELINUX_INCLUDE_DIR = "${WORKDIR}/recipe-sysroot-native${includedir}"
36
37# The code which follows is strongly inspired from the GNU coreutils bitbake recipe:
38
39# [ df mktemp nice printenv base64 gets a special treatment and is not included in this
40bindir_progs = "[ arch basename cksum comm csplit cut dir dircolors dirname du \
41 env expand expr factor fmt fold groups head hostid id install \
42 join link logname md5sum mkfifo nl nohup nproc od paste pathchk \
43 pinky pr printf ptx readlink realpath seq sha1sum sha224sum sha256sum \
44 sha384sum sha512sum shred shuf sort split sum tac tail tee test timeout \
45 tr truncate tsort tty unexpand uniq unlink uptime users vdir wc who whoami yes"
46
47bindir_progs += "${@bb.utils.contains('PACKAGECONFIG', 'selinux', 'chcon runcon', '', d)}"
48
49base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill ln ls mkdir \
50 mknod mv pwd rm rmdir sleep stty sync touch true uname stat"
51
52sbindir_progs= "chroot"
53
54inherit update-alternatives
55
56# Higher than busybox (which uses 50)
57ALTERNATIVE_PRIORITY = "100"
58
59# Higher than net-tools (which uses 100)
60ALTERNATIVE_PRIORITY[hostname] = "110"
61
62ALTERNATIVE:${PN} = "${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base32 base64 nice printenv mktemp df"
63
64# Use the multicall binary named "coreutils" for symlinks
65ALTERNATIVE_TARGET = "${bindir}/coreutils"
66
67python __anonymous() {
68 for prog in d.getVar('base_bindir_progs').split():
69 d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
70
71 for prog in d.getVar('sbindir_progs').split():
72 d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('sbindir'), prog))
73}