2017-09-01 20:33:36 +03:00
#!/bin/bash
set -euo pipefail
# This is just a small wrapper for `make install`, but with the added logic to
# pull in ostree packages from the build container. We always assume development
# and testing is against git master ostree and that the build container is
# tracking e.g. CAHC or FAHC (see HACKING.md for more details).
DESTDIR = ${ topsrcdir } /insttree
2017-11-29 01:02:23 +03:00
# Chown everything to writable, due to
# https://bugzilla.redhat.com/show_bug.cgi?id=517575
if test -d ${ DESTDIR } ; then chmod -R u+w ${ DESTDIR } /; fi
2017-09-01 20:33:36 +03:00
rm -rf ${ DESTDIR }
mkdir -p ${ DESTDIR }
ostree --version
2018-11-14 16:28:11 +03:00
# We don't want to sync all of userspace, just things
# that rpm-ostree links to or uses and tend to drift
# in important ways.
2019-03-14 17:06:31 +03:00
# XXX: We add libmodulemd manually for now until it's
# part of the image.
2020-02-21 18:58:31 +03:00
pkgs = "libsolv libmodulemd"
2018-11-14 16:28:11 +03:00
if rpm -q zchunk-libs 2>/dev/null; then
pkgs = " ${ pkgs } zchunk-libs "
fi
for pkg in ostree{ ,-libs,-grub2} ${ pkgs } ; do
2017-09-01 20:33:36 +03:00
rpm -q $pkg
# We do not have perms to read /etc/grub2 as non-root. In the prebuilt
# container case, manpages are missing. Ignore that.
rpm -ql $pkg | grep -vE "^/(etc|usr/share/(doc|man))/" > list.txt
2017-11-29 01:02:23 +03:00
# See above chown https://bugzilla.redhat.com/show_bug.cgi?id=517575
2017-09-01 20:33:36 +03:00
chmod -R u+w ${ DESTDIR } /
# Note we cant use --ignore-missing-args here since it was added in
# rsync 3.1.0, but CentOS7 only has rsync 3.0.9. Anyway, we expect
# everything in list.txt to be present (otherwise, tweak grep above).
rsync -l --files-from= list.txt / ${ DESTDIR } /
rm -f list.txt
done
make install DESTDIR = ${ DESTDIR }