repo/commit: Add support for --selinux-policy-from-base
The [dev-overlay](https://github.com/coreos/coreos-assembler/blob/332c6ab3b91778d904224c3c960d9cc4739d60bd/src/cmd-dev-overlay) script shipped in coreos-assembler mostly exists to deal with the nontrivial logic around SELinux policy. Let's make the use case of "commit some binaries overlaying a base tree, using the base's selinux policy" just require a magical `--selinux-policy-from-base` argument to `ostree commit`. A new C API was added to implement this in the case of `--tree=ref`; when the base directory is already checked out, we can just reuse the existing logic that `--selinux-policy` was using. Requires: https://github.com/ostreedev/ostree/pull/2039
This commit is contained in:
1 parent
41d3dfa7b8
commit
b3bbbd1542
7 files changed
+121
-16
No files matched your search
@@ -6,6 +6,7 @@ set -xeuo pipefail
|
||||
|
||||
. ${KOLA_EXT_DATA}/libinsttest.sh
|
||||
require_writable_sysroot
|
||||
prepare_tmpdir /var/tmp
|
||||
|
||||
date
|
||||
cd /ostree/repo/tmp
|
||||
@@ -87,3 +88,19 @@ rm co -rf
|
||||
ostree refs --delete testbranch
|
||||
echo "ok checkout selinux and skip-list"
|
||||
date
|
||||
|
||||
mkdir -p usr/{bin,lib,etc}
|
||||
echo 'somebinary' > usr/bin/somebinary
|
||||
ls -Z usr/bin/somebinary > lsz.txt
|
||||
assert_not_file_has_content lsz.txt ':bin_t:'
|
||||
rm -f lsz.txt
|
||||
echo 'somelib' > usr/lib/somelib.so
|
||||
echo 'someconf' > usr/etc/some.conf
|
||||
ostree commit -b newbase --selinux-policy-from-base --tree=ref=${host_refspec} --tree=dir=$(pwd)
|
||||
ostree ls -X newbase /usr/bin/somebinary > newls.txt
|
||||
assert_file_has_content newls.txt ':bin_t:'
|
||||
ostree ls -X newbase /usr/lib/somelib.so > newls.txt
|
||||
assert_file_has_content newls.txt ':lib_t:'
|
||||
ostree ls -X newbase /usr/etc/some.conf > newls.txt
|
||||
assert_file_has_content newls.txt ':etc_t:'
|
||||
echo "ok commit --selinux-policy-from-base"
|
||||
Reference in new issue
Block a user