Partially reverts commit 5754dbd. The code in the specfile adds a MAC address to every <bridge>, even for <forward mode='bridge'> for which we don't support changing MAC addresses. Remove it completely. For new networks, we have been adding MAC addresses on definition/creation since the commit mentioned above. For existing networks (pre-0.9.0), the MAC is added by the previous commit. https://bugzilla.redhat.com/show_bug.cgi?id=1156367 --- libvirt.spec.in | 42 ------------------------------------------ src/conf/network_conf.c | 4 ++++ 2 files changed, 4 insertions(+), 42 deletions(-) diff --git a/libvirt.spec.in b/libvirt.spec.in index 6fcaa3e..43b3899 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -1606,48 +1606,6 @@ exit 0 %post daemon - %if %{with_network} -# All newly defined networks will have a mac address for the bridge -# auto-generated, but networks already existing at the time of upgrade -# will not. We need to go through all the network configs, look for -# those that don't have a mac address, and add one. - -network_files=$( (cd %{_localstatedir}/lib/libvirt/network && \ - grep -L "mac address" *.xml; \ - cd %{_sysconfdir}/libvirt/qemu/networks && \ - grep -L "mac address" *.xml) 2>/dev/null \ - | sort -u) - -for file in $network_files -do - # each file exists in either the config or state directory (or both) and - # does not have a mac address specified in either. We add the same mac - # address to both files (or just one, if the other isn't there) - - mac4=`printf '%X' $(($RANDOM % 256))` - mac5=`printf '%X' $(($RANDOM % 256))` - mac6=`printf '%X' $(($RANDOM % 256))` - for dir in %{_localstatedir}/lib/libvirt/network \ - %{_sysconfdir}/libvirt/qemu/networks - do - if test -f $dir/$file - then - sed -i.orig -e \ - "s|\(<bridge.*$\)|\0\n <mac address='52:54:00:$mac4:$mac5:$mac6'/>|" \ - $dir/$file - if test $? != 0 - then - echo "failed to add <mac address='52:54:00:$mac4:$mac5:$mac6'/>" \ - "to $dir/$file" - mv -f $dir/$file.orig $dir/$file - else - rm -f $dir/$file.orig - fi - fi - done -done - %endif - %if %{with_systemd} %if %{with_systemd_macros} %systemd_post virtlockd.socket libvirtd.service libvirtd.socket diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index f36be63..4c16bb4 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -3155,6 +3155,10 @@ virNetworkObjPtr virNetworkLoadConfig(virNetworkObjListPtr nets, def->forward.type == VIR_NETWORK_FORWARD_NAT || def->forward.type == VIR_NETWORK_FORWARD_ROUTE) { + if (!def->mac_specified) { + virNetworkSetBridgeMacAddr(def); + virNetworkSaveConfig(configDir, def); + } /* Generate a bridge if none is specified, but don't check for collisions * if a bridge is hardcoded, so the network is at least defined. */ -- 2.0.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list