#!/bin/bash set -euo pipefail # https://github.com/coreos/rpm-ostree/pull/5244 # sysimage_rpmdb=usr/lib/sysimage/rpm/rpmdb.sqlite rpmostree_rpmdb_dir=usr/share/rpm rpmostree_rpmdb="${rpmostree_rpmdb_dir}/rpmdb.sqlite" rpmostree_base_rpmdb_dir=usr/lib/sysimage/rpm-ostree-base-db rpmostree_base_rpmdb="${rpmostree_base_rpmdb_dir}/rpmdb.sqlite" pragma='PRAGMA journal_mode=delete;' # Forcibly delete this because ostree hardlinking the sqlite databases # confuses rpm. This will cause rpm-ostree to enter a fallback # mode with package layering, but that's OK. if test -d "${rpmostree_base_rpmdb_dir}"; then echo "Removing ${rpmostree_base_rpmdb_dir}" rm "${rpmostree_base_rpmdb_dir}" -rf fi for path in ${sysimage_rpmdb} ${rpmostree_rpmdb}; do if test -f "${path}-shm"; then echo "Executing in ${path}: ${pragma}" sqlite3 "${path}" "${pragma}" >/dev/null fi done