22# `build-gnu.bash` ~ builds GNU coreutils (from supplied sources)
33#
44
5- # spell-checker:ignore (paths) abmon deref discrim eacces getlimits getopt ginstall inacc infloop inotify reflink ; (misc) INT_OFLOW OFLOW baddecode submodules xstrtol distros ; (vars/env) SRCDIR vdir rcexp xpart dired OSTYPE ; (utils) gnproc greadlink gsed multihardlink texinfo
5+ # spell-checker:ignore (paths) abmon deref discrim eacces getlimits getopt ginstall inacc infloop inotify reflink ; (misc) INT_OFLOW OFLOW
6+ # spell-checker:ignore baddecode submodules xstrtol distros ; (vars/env) SRCDIR vdir rcexp xpart dired OSTYPE ; (utils) gnproc greadlink gsed multihardlink texinfo CARGOFLAGS
67
78set -e
89
@@ -28,6 +29,7 @@ REPO_main_dir="$(dirname -- "${ME_dir}")"
2829
2930# Default profile is 'debug'
3031UU_MAKE_PROFILE=' debug'
32+ CARGO_FEATURE_FLAGS=" "
3133
3234for arg in " $@ "
3335do
@@ -93,9 +95,20 @@ echo "UU_BUILD_DIR='${UU_BUILD_DIR}'"
9395
9496cd " ${path_UUTILS} " && echo " [ pwd:'${PWD} ' ]"
9597
98+ # Check for SELinux support
9699if [ " $( uname) " == " Linux" ]; then
97- # only set on linux
100+ # Only attempt to enable SELinux features on Linux
98101 export SELINUX_ENABLED=1
102+ CARGO_FEATURE_FLAGS=" ${CARGO_FEATURE_FLAGS} selinux"
103+ fi
104+
105+ # Trim leading whitespace from feature flags
106+ CARGO_FEATURE_FLAGS=" $( echo " ${CARGO_FEATURE_FLAGS} " | sed -e ' s/^[[:space:]]*//' ) "
107+
108+ # If we have feature flags, format them correctly for cargo
109+ if [ ! -z " ${CARGO_FEATURE_FLAGS} " ]; then
110+ CARGO_FEATURE_FLAGS=" --features ${CARGO_FEATURE_FLAGS} "
111+ echo " Building with cargo flags: ${CARGO_FEATURE_FLAGS} "
99112fi
100113
101114# Set up quilt for patch management
@@ -111,7 +124,12 @@ else
111124fi
112125cd -
113126
114- " ${MAKE} " PROFILE=" ${UU_MAKE_PROFILE} "
127+ # Pass the feature flags to make, which will pass them to cargo
128+ " ${MAKE} " PROFILE=" ${UU_MAKE_PROFILE} " CARGOFLAGS=" ${CARGO_FEATURE_FLAGS} "
129+ touch g
130+ echo " stat with selinux support"
131+ ./target/debug/stat -c%C g || true
132+
115133
116134cp " ${UU_BUILD_DIR} /install" " ${UU_BUILD_DIR} /ginstall" # The GNU tests rename this script before running, to avoid confusion with the make target
117135# Create *sum binaries
0 commit comments