From e1de26f79a705b4d35d0c7062a0efb9bc9ee8030 Mon Sep 17 00:00:00 2001 From: Rafal Wojtczuk Date: Fri, 17 Sep 2010 15:16:01 +0200 Subject: [PATCH] Require NetworkManager >= 0.8.1-1 Unfortunately, config files layout changes with NM version; therefore require >= 0.8.1-1. This should also prevent NM from messing with VIF interfaces on suspend/resume. --- common/qubes_fix_nm_conf.sh | 14 ++++++++++++++ rpm_spec/core-dom0.spec | 9 +++++---- rpm_spec/core-netvm.spec | 7 ++++--- 3 files changed, 23 insertions(+), 7 deletions(-) create mode 100755 common/qubes_fix_nm_conf.sh diff --git a/common/qubes_fix_nm_conf.sh b/common/qubes_fix_nm_conf.sh new file mode 100755 index 00000000..5a6bb305 --- /dev/null +++ b/common/qubes_fix_nm_conf.sh @@ -0,0 +1,14 @@ +#!/bin/sh +FILE=/etc/NetworkManager/NetworkManager.conf +VIFMAC=mac:fe:ff:ff:ff:ff:ff +if ! grep -q ^plugins.*keyfile $FILE ; then + sed -i 's/^plugins.*$/&,keyfile/' $FILE + echo '[keyfile]' >> $FILE +fi +if ! grep -q ^unmanaged-devices $FILE ; then + sed -i 's/^\[keyfile\]$/\[keyfile\]\x0aunmanaged-devices='$VIFMAC/ $FILE +fi +if ! grep -q ^unmanaged-devices.*$VIFMAC $FILE ; then + sed -i 's/^unmanaged-devices.*$/&,'$VIFMAC/ $FILE +fi +exit 0 diff --git a/rpm_spec/core-dom0.spec b/rpm_spec/core-dom0.spec index 80e7d3d7..74d8cfe3 100644 --- a/rpm_spec/core-dom0.spec +++ b/rpm_spec/core-dom0.spec @@ -37,7 +37,7 @@ Vendor: Invisible Things Lab License: GPL URL: http://www.qubes-os.org Requires: python, xen-runtime, pciutils, python-inotify, python-daemon, kernel-qubes-dom0 - +Requires: NetworkManager >= 0.8.1-1 %define _builddir %(pwd)/dom0 %description @@ -98,6 +98,7 @@ cp ../dom0/qubes.repo $RPM_BUILD_ROOT/etc/yum.repos.d mkdir -p $RPM_BUILD_ROOT/usr/bin cp ../common/qubes_setup_dnat_to_ns $RPM_BUILD_ROOT/usr/lib/qubes +cp ../common/qubes_fix_nm_conf.sh $RPM_BUILD_ROOT/usr/lib/qubes mkdir -p $RPM_BUILD_ROOT/etc/dhclient.d ln -s /usr/lib/qubes/qubes_setup_dnat_to_ns $RPM_BUILD_ROOT/etc/dhclient.d/qubes_setup_dnat_to_ns.sh mkdir -p $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/ @@ -114,9 +115,8 @@ sed -i 's/\/block /\/block.qubes /' /etc/udev/rules.d/xen-backend.rules %post -if ! grep -q ^no-auto-default.*=.*FE:FF:FF:FF:FF:FF /etc/NetworkManager/nm-system-settings.conf ; then - echo no-auto-default=FE:FF:FF:FF:FF:FF >> /etc/NetworkManager/nm-system-settings.conf -fi +/usr/lib/qubes/qubes_fix_nm_conf.sh + if [ -e /etc/yum.repos.d/qubes-r1-dom0.repo ]; then # we want the user to use the repo that comes with qubes-code-dom0 packages instead rm -f /etc/yum.repos.d/qubes-r1-dom0.repo @@ -215,6 +215,7 @@ fi %dir /usr/share/qubes/icons/*.png /etc/yum.repos.d/qubes.repo /usr/lib/qubes/qubes_setup_dnat_to_ns +/usr/lib/qubes/qubes_fix_nm_conf.sh /etc/dhclient.d/qubes_setup_dnat_to_ns.sh /etc/NetworkManager/dispatcher.d/qubes_nmhook /etc/sysconfig/iptables diff --git a/rpm_spec/core-netvm.spec b/rpm_spec/core-netvm.spec index 1717b6b1..83d88c29 100644 --- a/rpm_spec/core-netvm.spec +++ b/rpm_spec/core-netvm.spec @@ -33,6 +33,7 @@ License: GPL URL: http://www.qubes-os.org Requires: /usr/bin/xenstore-read Requires: fedora-release = 13 +Requires: NetworkManager >= 0.8.1-1 Provides: qubes-core-vm %define _builddir %(pwd)/netvm @@ -61,6 +62,7 @@ cp qubes_core $RPM_BUILD_ROOT/etc/init.d/ mkdir -p $RPM_BUILD_ROOT/var/lib/qubes mkdir -p $RPM_BUILD_ROOT/usr/lib/qubes cp ../common/qubes_setup_dnat_to_ns $RPM_BUILD_ROOT/usr/lib/qubes +cp ../common/qubes_fix_nm_conf.sh $RPM_BUILD_ROOT/usr/lib/qubes mkdir -p $RPM_BUILD_ROOT/etc/dhclient.d ln -s /usr/lib/qubes/qubes_setup_dnat_to_ns $RPM_BUILD_ROOT/etc/dhclient.d/qubes_setup_dnat_to_ns.sh mkdir -p $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/ @@ -80,9 +82,7 @@ cp /var/lib/qubes/serial.conf /etc/init/serial.conf %post -if ! grep -q ^no-auto-default.*=.*FE:FF:FF:FF:FF:FF /etc/NetworkManager/nm-system-settings.conf ; then - echo no-auto-default=FE:FF:FF:FF:FF:FF >> /etc/NetworkManager/nm-system-settings.conf -fi +/usr/lib/qubes/qubes_fix_nm_conf.sh if [ "$1" != 1 ] ; then # do this whole %post thing only when updating for the first time... @@ -176,6 +176,7 @@ rm -rf $RPM_BUILD_ROOT /etc/init.d/qubes_core /var/lib/qubes /usr/lib/qubes/qubes_setup_dnat_to_ns +/usr/lib/qubes/qubes_fix_nm_conf.sh /etc/dhclient.d/qubes_setup_dnat_to_ns.sh /etc/NetworkManager/dispatcher.d/qubes_nmhook /etc/yum.repos.d/qubes.repo