• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 log --oneline -1
74
75#
76# Build and replace userspace components
77#
78make clean distclean
79make -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install
80make -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install-pywrap
81make -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 relabel
82
83#
84# Get the selinux testsuite, but don't clone it in selinux git directory, move to $HOME
85# first.
86#
87cd "$HOME"
88rm -rf selinux-testsuite
89git clone --depth=1 https://github.com/SELinuxProject/selinux-testsuite.git
90cd selinux-testsuite
91
92# The testsuite must be run in enforcing mode
93setenforce 1
94
95#
96# Run the test suite
97#
98make test
99