Skip to content

Commit 7d24aa8

Browse files
authored
Merge pull request #7899 from sylvestre/selinux-build
gnu: fix the build with selinux
2 parents a752f73 + b778fa7 commit 7d24aa8

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

GNUmakefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ TEST_NO_FAIL_FAST :=--no-fail-fast
267267
TEST_SPEC_FEATURE := test_unimplemented
268268
else ifeq ($(SELINUX_ENABLED),1)
269269
TEST_NO_FAIL_FAST :=
270-
TEST_SPEC_FEATURE := feat_selinux
271-
BUILD_SPEC_FEATURE := feat_selinux
270+
TEST_SPEC_FEATURE := selinux
271+
BUILD_SPEC_FEATURE := selinux
272272
endif
273273

274274
define TEST_BUSYBOX

util/build-gnu.sh

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
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

78
set -e
89

@@ -28,6 +29,7 @@ REPO_main_dir="$(dirname -- "${ME_dir}")"
2829

2930
# Default profile is 'debug'
3031
UU_MAKE_PROFILE='debug'
32+
CARGO_FEATURE_FLAGS=""
3133

3234
for arg in "$@"
3335
do
@@ -93,9 +95,20 @@ echo "UU_BUILD_DIR='${UU_BUILD_DIR}'"
9395

9496
cd "${path_UUTILS}" && echo "[ pwd:'${PWD}' ]"
9597

98+
# Check for SELinux support
9699
if [ "$(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}"
99112
fi
100113

101114
# Set up quilt for patch management
@@ -111,7 +124,12 @@ else
111124
fi
112125
cd -
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

116134
cp "${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

Comments
 (0)