diff --git a/dom0-updates/patch-dnf-yum-config b/dom0-updates/patch-dnf-yum-config new file mode 100755 index 0000000..120a5f8 --- /dev/null +++ b/dom0-updates/patch-dnf-yum-config @@ -0,0 +1,86 @@ +#!/bin/sh +# +# The Qubes OS Project, http://www.qubes-os.org +# +# Copyright (C) 2015 Marek Marczykowski-Górecki +# +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# + +BEGIN_MARKER="### QUBES BEGIN ###" +END_MARKER="### QUBES END ###" + +set -e + +### helper functions begin ### + +# set proxy in given config file +update_conf() { + local CONF_PATH="$1" + local CONF_OPTIONS="$2" + + # Ensure that Qubes conf markers are present in the file + if ! grep -q "$BEGIN_MARKER" $CONF_PATH; then + if grep -q "$END_MARKER" $CONF_PATH; then + echo "ERROR: found QUBES END marker but not QUBES BEGIN in ${CONF_PATH}" >&2 + echo "Fix the file by either removing both of them, or adding missing back and retry" >&2 + exit 1 + fi + cp $CONF_PATH ${CONF_PATH}.qubes-orig + echo "$BEGIN_MARKER" >> $CONF_PATH + echo "$END_MARKER" >> $CONF_PATH + elif ! grep -q "$END_MARKER" $CONF_PATH; then + echo "ERROR: found QUBES BEGIN marker but not QUBES END in ${CONF_PATH}" >&2 + echo "Fix the file by either removing both of them, or adding missing back and retry" >&2 + exit 1 + fi + + # Prepare config block + local tmpfile=`mktemp` + cat > ${tmpfile} <> /etc/yum.conf - -sed '/^installonlypkgs\s*=/d' -i /etc/yum.conf -echo 'installonlypkgs = kernel, kernel-qubes-vm' >> /etc/yum.conf - -sed '/^distroverpkg\s*=/d' -i /etc/yum.conf -echo 'distroverpkg = qubes-release' >> /etc/yum.conf +/usr/lib/qubes/patch-dnf-yum-config systemctl enable qubes-suspend.service >/dev/null 2>&1 @@ -245,6 +239,7 @@ chmod -x /etc/grub.d/10_linux /etc/cron.daily/qubes-dom0-updates.cron /etc/yum.real.repos.d/qubes-cached.repo /usr/bin/qubes-dom0-update +/usr/lib/qubes/patch-dnf-yum-config %attr(4750,root,qubes) /usr/libexec/qubes/qfile-dom0-unpacker /usr/libexec/qubes/qubes-receive-updates /etc/qubes-rpc/qubes.ReceiveUpdates