Lukas Vrabec 03d22f
#!/bin/bash
Lukas Vrabec 03d22f
Lukas Vrabec 03d22f
DISTGIT_PATH=$(pwd)
Lukas Vrabec 03d22f
Lukas Vrabec 03d22f
FEDORA_VERSION=rawhide
Lukas Vrabec b040fb
DOCKER_FEDORA_VERSION=master
Zdenek Pytela 557675
DISTGIT_BRANCH=rawhide
Lukas Vrabec 735de0
REPO_SELINUX_POLICY=${REPO_SELINUX_POLICY:-https://github.com/fedora-selinux/selinux-policy}
Petr Lautrbach b71984
REPO_SELINUX_POLICY_BRANCH=${REPO_SELINUX_POLICY_BRANCH:-$FEDORA_VERSION}
Lukas Vrabec 735de0
REPO_CONTAINER_SELINUX=${REPO_CONTAINER_SELINUX:-https://github.com/containers/container-selinux}
Lukas Vrabec b9e53a
REPO_MACRO_EXPANDER=${REPO_MACRO_EXPANDER:-https://github.com/fedora-selinux/macro-expander.git}
Petr Lautrbach b71984
Petr Lautrbach b71984
# When -l is specified, we use locally created tarballs and don't download them from github
Petr Lautrbach b71984
DOWNLOAD_DEFAULT_GITHUB_TARBALLS=1
Petr Lautrbach b71984
if [ "$1" == "-l" ]; then
Petr Lautrbach b71984
    DOWNLOAD_DEFAULT_GITHUB_TARBALLS=0
Petr Lautrbach b71984
fi
Lukas Vrabec 03d22f
Lukas Vrabec 03d22f
git checkout $DISTGIT_BRANCH -q
Lukas Vrabec 03d22f
Ondrej Mosnacek d9d563
POLICYSOURCES=`mktemp -d --tmpdir policysources.XXXXXX`
Lukas Vrabec 03d22f
pushd $POLICYSOURCES > /dev/null
Lukas Vrabec 03d22f
Ondrej Mosnacek e042be
git clone --depth=1 -q $REPO_SELINUX_POLICY selinux-policy \
Ondrej Mosnacek e042be
    -b $REPO_SELINUX_POLICY_BRANCH
Ondrej Mosnacek e042be
git clone --depth=1 -q $REPO_CONTAINER_SELINUX container-selinux
Ondrej Mosnacek e042be
git clone --depth=1 -q $REPO_MACRO_EXPANDER macro-expander
Lukas Vrabec 03d22f
Lukas Vrabec 03d22f
pushd selinux-policy > /dev/null
Miroslav Grepl 856e20
# prepare policy patches against upstream commits matching the last upstream merge
Lukas Vrabec 51dc83
BASE_HEAD_ID=$(git rev-parse HEAD)
Lukas Vrabec 51dc83
BASE_SHORT_HEAD_ID=$(c=${BASE_HEAD_ID}; echo ${c:0:7})
Petr Lautrbach b71984
git archive --prefix=selinux-policy-$BASE_HEAD_ID/ --format tgz HEAD > $DISTGIT_PATH/selinux-policy-$BASE_SHORT_HEAD_ID.tar.gz
Lukas Vrabec 47948f
popd > /dev/null
Lukas Vrabec 47948f
Lukas Vrabec ab3db2
pushd container-selinux > /dev/null
Lukas Vrabec ab3db2
# Actual container-selinux files are in master branch
Lukas Vrabec d93225
#git checkout -b ${DOCKER_FEDORA_VERSION} -t origin/${DOCKER_FEDORA_VERSION} -q
Lukas Vrabec ab3db2
tar -czf container-selinux.tgz container.if container.te container.fc
Lukas Vrabec 03d22f
popd > /dev/null
Lukas Vrabec 03d22f
Lukas Vrabec 03d22f
pushd $DISTGIT_PATH > /dev/null
Petr Lautrbach b71984
if [ $DOWNLOAD_DEFAULT_GITHUB_TARBALLS == 1 ]; then
Lukas Vrabec 5e55c3
    wget -O selinux-policy-${BASE_SHORT_HEAD_ID}.tar.gz https://github.com/fedora-selinux/selinux-policy/archive/${BASE_HEAD_ID}.tar.gz &> /dev/null
Petr Lautrbach b71984
fi
Lukas Vrabec ab3db2
cp $POLICYSOURCES/container-selinux/container-selinux.tgz .
Lukas Vrabec b9e53a
cp $POLICYSOURCES/macro-expander/macro-expander.sh ./macro-expander
Lukas Vrabec 8e8fb9
chmod +x ./macro-expander
Lukas Vrabec 03d22f
popd > /dev/null
Lukas Vrabec 03d22f
Lukas Vrabec 03d22f
popd > /dev/null
Lukas Vrabec 03d22f
rm -rf $POLICYSOURCES
Lukas Vrabec 03d22f
Ondrej Mosnacek 548766
# Update commit id in selinux-policy.spec file
Ondrej Mosnacek 548766
sed -i "s/%global commit [^ ]*$/%global commit $BASE_HEAD_ID/" selinux-policy.spec
Petr Lautrbach b71984
Petr Lautrbach b71984
# Update sources
Ondrej Mosnacek 548766
sha512sum --tag selinux-policy-${BASE_SHORT_HEAD_ID}.tar.gz container-selinux.tgz macro-expander > sources
Petr Lautrbach b71984
Ondrej Mosnacek 548766
echo -e "\nSELinux policy tarball and container-selinux.tgz with container policy files have been created."
Ondrej Mosnacek 548766
echo "Commit id of selinux-policy in spec file was changed to ${BASE_HEAD_ID}"