d2bd8500da
There are a few reasons to do this. First, systemd changed to refuse mounts on symlinks, and hence if one *wants* "/tmp-on-tmpfs", one would need to write a different `sysroot-tmp.mount` unit. Second, the original rationale for having this symlink was that if you had multiple ostree stateroots ("osnames"), it's nicer if they had the same `/tmp` to avoid duplication. But in practice today that's already an issue due to `/var/tmp`, and further the multiple-stateroot case is pretty unusual. And that case is *further* broken by SELinux (if one wanted to have e.g. an Ubuntu and Fedora) stateroots. So let's fully decouple this and make `/tmp` a plain old directory by default, so systemd's `tmp.mount` can become useful. Now, things get interesting for the case where someone wants a physical `/tmp` that *does* persist across reboots. Right now, if one just did a `systemctl mask tmp.mount` as we do in Fedora Atomic Host's cloud images, you'd get a semantic where `/tmp` stays per-deployment, which is weird. Our recommendation for that should likely be to set up a bind mount for `/tmp` → `/var/tmp`. For now, this stays an option to ensure compatibility; if FAH Cloud images want to stay with "physical /tmp", then we'd have to change the kickstart. Closes: https://github.com/projectatomic/rpm-ostree/issues/669 Closes: #778 Approved by: jlebon
62 lines
1.9 KiB
Bash
Executable File
62 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -xeuo pipefail
|
|
|
|
dn=$(cd $(dirname $0) && pwd)
|
|
. ${dn}/libcomposetest.sh
|
|
|
|
prepare_compose_test "misc-tweaks"
|
|
# No docs
|
|
pysetjsonmember "documentation" "False"
|
|
# And tweak some of the systemd units
|
|
pysetjsonmember "default_target" '"multi-user.target"'
|
|
pyappendjsonmember "packages" '["tuned"]'
|
|
pysetjsonmember "units" '["tuned.service"]'
|
|
# And test adding/removing files
|
|
pysetjsonmember "add-files" '[["foo.txt", "/usr/etc/foo.txt"]]'
|
|
pysetjsonmember "remove-files" '["etc/hosts"]'
|
|
pysetjsonmember "remove-from-packages" '[["setup", "/etc/hosts\..*"]]'
|
|
rnd=$RANDOM
|
|
echo $rnd > composedata/foo.txt
|
|
# Test tmp-is-dir
|
|
pysetjsonmember "tmp-is-dir" 'True'
|
|
|
|
# Do the compose
|
|
runcompose
|
|
echo "ok compose"
|
|
|
|
# Tests for nodocs
|
|
ostree --repo=${repobuild} ls -R ${treeref} /usr/share/man > manpages.txt
|
|
assert_not_file_has_content manpages.txt man5/ostree.repo.5
|
|
echo "ok no manpages"
|
|
|
|
# Tests for units
|
|
ostree --repo=${repobuild} ls ${treeref} \
|
|
/usr/etc/systemd/system/default.target > out.txt
|
|
assert_file_has_content out.txt '-> .*/multi-user\.target'
|
|
echo "ok default target"
|
|
|
|
ostree --repo=${repobuild} ls ${treeref} \
|
|
/usr/etc/systemd/system/multi-user.target.wants > out.txt
|
|
assert_file_has_content out.txt '-> .*/tuned.service'
|
|
echo "ok enable units"
|
|
|
|
# Tests for files
|
|
ostree --repo=${repobuild} cat ${treeref} /usr/etc/foo.txt > out.txt
|
|
assert_file_has_content out.txt $rnd
|
|
echo "ok add-files"
|
|
|
|
ostree --repo=${repobuild} ls ${treeref} /usr/etc > out.txt
|
|
assert_not_file_has_content out.txt '/usr/etc/hosts$'
|
|
echo "ok remove-files"
|
|
|
|
ostree --repo=${repobuild} ls ${treeref} /usr/etc > out.txt
|
|
assert_not_file_has_content out.txt '/usr/etc/hosts\.allow$'
|
|
assert_not_file_has_content out.txt '/usr/etc/hosts\.deny$'
|
|
echo "ok remove-from-packages"
|
|
|
|
# https://github.com/projectatomic/rpm-ostree/issues/669
|
|
ostree --repo=${repobuild} ls ${treeref} /tmp > ls.txt
|
|
assert_file_has_content ls.txt 'd01777 0 0 0 /tmp'
|
|
echo "ok /tmp"
|