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