1#!/usr/bin/env bash 2# SPDX-License-Identifier: MIT 3set -ev 4 5# 6# We expect this to be set in the environment, but if it's not, most selinux projects 7# just have the same name as upstream, so choose that. 8# 9export SELINUX_DIR="${SELINUX_DIR:-/root/selinux}" 10 11# CI Debug output if things go squirrely. 12getenforce 13id -Z 14nproc 15pwd 16 17# Turn off enforcing for the setup to prevent any weirdness from breaking 18# the CI. 19setenforce 0 20 21dnf clean all -y 22dnf install -y \ 23 --allowerasing \ 24 --skip-broken \ 25 git \ 26 audit-libs-devel \ 27 bison \ 28 bzip2-devel \ 29 CUnit-devel \ 30 diffutils \ 31 flex \ 32 gcc \ 33 gettext \ 34 glib2-devel \ 35 make \ 36 libcap-devel \ 37 libcap-ng-devel \ 38 pam-devel \ 39 pcre2-devel \ 40 xmlto \ 41 python3-devel \ 42 ruby-devel \ 43 swig \ 44 perl-Test \ 45 perl-Test-Harness \ 46 perl-Test-Simple \ 47 selinux-policy-devel \ 48 gcc \ 49 libselinux-devel \ 50 net-tools \ 51 netlabel_tools \ 52 iptables \ 53 lksctp-tools-devel \ 54 attr \ 55 libbpf-devel \ 56 keyutils-libs-devel \ 57 kernel-devel \ 58 quota \ 59 xfsprogs-devel \ 60 libuuid-devel \ 61 e2fsprogs \ 62 jfsutils \ 63 dosfstools \ 64 kernel-devel-"$(uname -r)" \ 65 kernel-modules-"$(uname -r)" 66 67# 68# Move to selinux code and build 69# 70cd "$SELINUX_DIR" 71 72# Show HEAD commit for sanity checking 73git config --global --add safe.directory "$SELINUX_DIR" 74git log --oneline -1 75 76# 77# Build and replace userspace components 78# 79make clean distclean 80make -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install 81make -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install-pywrap 82make -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 relabel 83 84# 85# Get the selinux testsuite, but don't clone it in selinux git directory, move to $HOME 86# first. 87# 88cd "$HOME" 89rm -rf selinux-testsuite 90git clone --depth=1 https://github.com/SELinuxProject/selinux-testsuite.git 91cd selinux-testsuite 92 93# The testsuite must be run in enforcing mode 94setenforce 1 95 96# 97# Run the test suite 98# 99make test 100