From 4fcc5bbf99edd767aa22850b42c9dc752aa0c3b26c933cbf1a3fa0ba8d9f05f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Tue, 26 May 2015 01:06:32 +0000 Subject: [PATCH] Accepting request 308492 from home:jengelh:branches:Base:System - Drop 1021-patch, ... those parts are moved to a separate package (udev-persistent-ifnames, SR 308347) OBS-URL: https://build.opensuse.org/request/show/308492 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=870 --- 1021-udev-re-add-persistent-net-rules.patch | 547 ------------------ ...-usage-of-dev_id-in-persistent-rules.patch | 14 - ...id-conditionally-in-persistent-rules.patch | 16 - ...licated-rules-with-layer3-interfaces.patch | 16 - ...VF-devices-when-name-starts-with-eth.patch | 12 - 1051-check-if-NAME-has-a-value.patch | 12 - 1053-better-checks-in-write_net_rules.patch | 29 - ...aming-of-virtual-interfaces-in-guest.patch | 11 - systemd-mini.changes | 17 + systemd-mini.spec | 33 +- systemd.changes | 17 + systemd.spec | 33 +- 12 files changed, 36 insertions(+), 721 deletions(-) delete mode 100644 1021-udev-re-add-persistent-net-rules.patch delete mode 100644 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch delete mode 100644 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch delete mode 100644 1046-fix-duplicated-rules-with-layer3-interfaces.patch delete mode 100644 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch delete mode 100644 1051-check-if-NAME-has-a-value.patch delete mode 100644 1053-better-checks-in-write_net_rules.patch delete mode 100644 1088-drop-renaming-of-virtual-interfaces-in-guest.patch diff --git a/1021-udev-re-add-persistent-net-rules.patch b/1021-udev-re-add-persistent-net-rules.patch deleted file mode 100644 index 145955d4..00000000 --- a/1021-udev-re-add-persistent-net-rules.patch +++ /dev/null @@ -1,547 +0,0 @@ ---- - Makefile.am | 9 - src/udev/net/link-config.c | 17 + - src/udev/rule_generator/75-persistent-net-generator.rules | 105 ++++++++++ - src/udev/rule_generator/76-net-sriov-names.rules | 18 + - src/udev/rule_generator/net-set-sriov-names | 79 +++++++ - src/udev/rule_generator/rule_generator.functions | 113 +++++++++++ - src/udev/rule_generator/write_net_rules | 141 ++++++++++++++ - 7 files changed, 479 insertions(+), 3 deletions(-) - -Index: systemd-218/Makefile.am -=================================================================== ---- systemd-218.orig/Makefile.am -+++ systemd-218/Makefile.am -@@ -3416,7 +3416,14 @@ dist_udevrules_DATA += \ - rules/75-tty-description.rules \ - rules/78-sound-card.rules \ - rules/80-net-setup-link.rules \ -- rules/95-udev-late.rules -+ rules/95-udev-late.rules \ -+ src/udev/rule_generator/75-persistent-net-generator.rules \ -+ src/udev/rule_generator/76-net-sriov-names.rules -+ -+udevlibexec_PROGRAMS += \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules \ -+ src/udev/rule_generator/net-set-sriov-names - - nodist_udevrules_DATA += \ - rules/99-systemd.rules -Index: systemd-218/src/udev/net/link-config.c -=================================================================== ---- systemd-218.orig/src/udev/net/link-config.c -+++ systemd-218/src/udev/net/link-config.c -@@ -176,16 +176,29 @@ static bool enable_name_policy(void) { - size_t l; - - r = proc_cmdline(&line); -- if (r < 0) { -+ if (r < 0) - log_warning_errno(r, "Failed to read /proc/cmdline, ignoring: %m"); -+#if defined(NET_IFNAMES) && (NET_IFNAMES == 1) -+# warning Using persistent rules as a default -+ if (r < 0) -+ return false; -+ -+ FOREACH_WORD_QUOTED(w, l, line, state) -+ if (strneq(w, "net.ifnames=1", l)) -+ return true; -+ -+ return false; -+#else -+# warning Using predictable rules as a default -+ if (r < 0) - return true; -- } - - FOREACH_WORD_QUOTED(word, l, line, state) - if (strneq(word, "net.ifnames=0", l)) - return false; - - return true; -+#endif - } - - int link_config_load(link_config_ctx *ctx) { -Index: systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -0,0 +1,105 @@ -+# do not edit this file, it will be overwritten on update -+ -+# these rules generate rules for persistent network device naming -+# -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+ACTION!="add", GOTO="persistent_net_generator_end" -+SUBSYSTEM!="net", GOTO="persistent_net_generator_end" -+ -+# ignore the interface if a name has already been set -+NAME=="?*", GOTO="persistent_net_generator_end" -+ -+# device name whitelist -+KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="persistent_net_generator_end" -+ -+# ignore Xen virtual interfaces -+SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" -+ -+# read MAC address -+ENV{MATCHADDR}="$attr{address}" -+ -+# match interface type -+ENV{MATCHIFTYPE}="$attr{type}" -+ -+# ignore KVM virtual interfaces -+ENV{MATCHADDR}=="52:54:00:*", GOTO="persistent_net_generator_end" -+# ignore VMWare virtual interfaces -+ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", GOTO="persistent_net_generator_end" -+# ignore Hyper-V virtual interfaces -+ENV{MATCHADDR}=="00:15:5d:*", GOTO="persistent_net_generator_end" -+ -+# These vendors are known to violate the local MAC address assignment scheme -+# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom -+ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" -+# 3Com -+ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" -+# 3Com IBM PC; Imagen; Valid; Cisco; Apple -+ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" -+# Intel -+ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" -+# Olivetti -+ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" -+# CMC Masscomp; Silicon Graphics; Prime EXL -+ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" -+# Prominet Corporation Gigabit Ethernet Switch -+ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" -+# BTI (Bus-Tech, Inc.) IBM Mainframes -+ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" -+# Realtek -+ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist" -+# Novell 2000 -+ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" -+# Realtec -+ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" -+# Kingston Technologies -+ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" -+# Xensource -+ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" -+ -+# match interface dev_id -+ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+ -+# do not use "locally administered" MAC address -+ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" -+ -+# do not use empty address -+ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" -+ -+LABEL="globally_administered_whitelist" -+ -+# build comment line for generated rule: -+SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" -+SUBSYSTEMS=="usb", ATTRS{idVendor}=="?*", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" -+SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" -+SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" -+ -+# ibmveth likes to use "locally administered" MAC addresses -+DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" -+ -+# S/390 uses id matches only, do not use MAC address match -+SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" -+ -+# see if we got enough data to create a rule -+ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" -+ -+# default comment -+ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" -+ -+# write rule -+DRIVERS=="?*", IMPORT{program}="write_net_rules" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ -+LABEL="persistent_net_generator_end" -Index: systemd-218/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/76-net-sriov-names.rules -@@ -0,0 +1,18 @@ -+# do not edit this file, it will be overwritten on update -+# -+# rename SRIOV virtual function interfaces -+ -+ACTION=="remove", GOTO="net-sriov-names_end" -+SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+ -+IMPORT{cmdline}="net.ifnames" -+ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" -+ -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name" -+SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" -+ -+LABEL="net-sriov-names_end" -Index: systemd-218/src/udev/rule_generator/net-set-sriov-names -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/net-set-sriov-names -@@ -0,0 +1,79 @@ -+#!/bin/bash -e -+# -+# This script is run to rename virtual interfaces -+# -+ -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+# according to dev_new_index(), ifindex is within [1, INT_MAX] -+int_max=$(/usr/bin/getconf INT_MAX) -+ifindex_before() { -+ a=$1 -+ b=$2 -+ -+ ((0 < (b - a) && (b - a) < int_max / 2 || -+ -1 * int_max < (b - a) && (b - a) < -1 * int_max / 2)) -+} -+ -+rename_interface() { -+ local src_net=$1 -+ local dest_net=$2 -+ local err=0 -+ -+ /sbin/ip link set dev $src_net down -+ /sbin/ip link set dev $src_net name $dest_net -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then -+ pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net") -+ if [ $(echo "$pf" | wc -l) -ne 1 ]; then -+ echo "too many pf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$INTERFACE/ifindex" -+ read pfindex < "/sys/class/net/$pf/ifindex" -+ if ifindex_before $pfindex $vfindex; then -+ bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device")) -+ for virtfn in "/sys/class/net/$pf/device/"virtfn*; do -+ if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ echo "INTERFACE_NEW=$pf.vf$vfnum" -+ exit 0 -+ fi -+ done -+ fi -+fi -+ -+read pfindex < "/sys/class/net/$INTERFACE/ifindex" -+shopt -s nullglob -+for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do -+ vf=$(ls -1 "$virtfn/net") -+ if [ $(echo "$vf" | wc -l) -ne 1 ]; then -+ echo "too many vf's" >&2 -+ exit 1 -+ fi -+ read vfindex < "/sys/class/net/$vf/ifindex" -+ if ifindex_before $vfindex $pfindex; then -+ vfnum=$(basename "$virtfn") -+ vfnum=${vfnum#virtfn} -+ if [ "$INTERFACE_NEW" ]; then -+ new_name=$INTERFACE_NEW -+ else -+ new_name=$INTERFACE -+ fi -+ new_name="$new_name.vf$vfnum" -+ if [ "$vf" != "$new_name" ]; then -+ rename_interface "$vf" "$new_name" -+ fi -+ fi -+done -Index: systemd-218/src/udev/rule_generator/rule_generator.functions -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/rule_generator.functions -@@ -0,0 +1,113 @@ -+# functions used by the udev rule generator -+ -+# Copyright (C) 2006 Marco d'Itri -+ -+# 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, see . -+ -+PATH='/usr/bin:/bin:/usr/sbin:/sbin' -+ -+# Read a single line from file $1 in the $DEVPATH directory. -+# The function must not return an error even if the file does not exist. -+sysread() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ local value -+ read value < "/sys$DEVPATH/$file" || return 0 -+ echo "$value" -+} -+ -+sysreadlink() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ readlink -f /sys$DEVPATH/$file 2> /dev/null || true -+} -+ -+# Return true if a directory is writeable. -+writeable() { -+ if ln -s test-link $1/.is-writeable 2> /dev/null; then -+ rm -f $1/.is-writeable -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+# Create a lock file for the current rules file. -+lock_rules_file() { -+ RUNDIR="/run/udev" -+ [ -e "$RUNDIR" ] || return 0 -+ -+ RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" -+ -+ retry=30 -+ while ! mkdir $RULES_LOCK 2> /dev/null; do -+ if [ $retry -eq 0 ]; then -+ echo "Cannot lock $RULES_FILE!" >&2 -+ exit 2 -+ fi -+ sleep 1 -+ retry=$(($retry - 1)) -+ done -+} -+ -+unlock_rules_file() { -+ [ "$RULES_LOCK" ] || return 0 -+ rmdir $RULES_LOCK || true -+} -+ -+# Choose the real rules file if it is writeable or a temporary file if not. -+# Both files should be checked later when looking for existing rules. -+choose_rules_file() { -+ RUNDIR="/run/udev" -+ local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" -+ [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 -+ -+ if writeable ${RULES_FILE%/*}; then -+ RO_RULES_FILE='/dev/null' -+ else -+ RO_RULES_FILE=$RULES_FILE -+ RULES_FILE=$tmp_rules_file -+ fi -+} -+ -+# Return the name of the first free device. -+raw_find_next_available() { -+ local links="$1" -+ -+ local basename=${links%%[ 0-9]*} -+ local max=-1 -+ for name in $links; do -+ local num=${name#$basename} -+ [ "$num" ] || num=0 -+ [ $num -gt $max ] && max=$num -+ done -+ -+ local max=$(($max + 1)) -+ # "name0" actually is just "name" -+ [ $max -eq 0 ] && return -+ echo "$max" -+} -+ -+# Find all rules matching a key (with action) and a pattern. -+find_all_rules() { -+ local key="$1" -+ local linkre="$2" -+ local match="$3" -+ -+ local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' -+ echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ -+ $RO_RULES_FILE \ -+ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ -+ 2>/dev/null) -+} -Index: systemd-218/src/udev/rule_generator/write_net_rules -=================================================================== ---- /dev/null -+++ systemd-218/src/udev/rule_generator/write_net_rules -@@ -0,0 +1,141 @@ -+#!/bin/sh -e -+ -+# This script is run to create persistent network device naming rules -+# based on properties of the device. -+# If the interface needs to be renamed, INTERFACE_NEW= will be printed -+# on stdout to allow udev to IMPORT it. -+ -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDEVID dev_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+# Copyright (C) 2006 Marco d'Itri -+# Copyright (C) 2007 Kay Sievers -+# -+# 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, see . -+ -+# debug, if UDEV_LOG= -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' -+ -+. /usr/lib/udev/rule_generator.functions -+ -+interface_name_taken() { -+ local value="$(find_all_rules 'NAME=' $INTERFACE)" -+ if [ "$value" ]; then -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+find_next_available() { -+ raw_find_next_available "$(find_all_rules 'NAME=' "$1")" -+} -+ -+write_rule() { -+ local match="$1" -+ local name="$2" -+ local comment="$3" -+ -+ { -+ if [ "$PRINT_HEADER" ]; then -+ PRINT_HEADER= -+ echo "# This file was automatically generated by the $0" -+ echo "# program, run by the persistent-net-generator.rules rules file." -+ echo "#" -+ echo "# You can modify it, as long as you keep each rule on a single" -+ echo "# line, and change only the value of the NAME= key." -+ fi -+ -+ echo "" -+ [ "$comment" ] && echo "# $comment" -+ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" -+ } >> $RULES_FILE -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+# Prevent concurrent processes from modifying the file at the same time. -+lock_rules_file -+ -+# Check if the rules file is writeable. -+choose_rules_file -+ -+# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces -+if [ "$MATCHADDR" ]; then -+ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" -+fi -+ -+if [ "$MATCHDRV" ]; then -+ match="$match, DRIVERS==\"$MATCHDRV\"" -+fi -+ -+if [ "$MATCHDEVID" ]; then -+ match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" -+fi -+ -+if [ "$MATCHID" ]; then -+ match="$match, KERNELS==\"$MATCHID\"" -+fi -+ -+if [ "$MATCHIFTYPE" ]; then -+ match="$match, ATTR{type}==\"$MATCHIFTYPE\"" -+fi -+ -+if [ -z "$match" ]; then -+ echo "missing valid match" >&2 -+ unlock_rules_file -+ exit 1 -+fi -+ -+basename=${INTERFACE%%[0-9]*} -+match="$match, KERNEL==\"$basename*\"" -+ -+if [ "$INTERFACE_NAME" ]; then -+ # external tools may request a custom name -+ COMMENT="$COMMENT (custom name provided by external tool)" -+ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then -+ INTERFACE=$INTERFACE_NAME; -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+else -+ # if a rule using the current name already exists, find a new name -+ if interface_name_taken; then -+ INTERFACE="$basename$(find_next_available "$basename[0-9]*")" -+ # prevent INTERFACE from being "eth" instead of "eth0" -+ [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+fi -+ -+write_rule "$match" "$INTERFACE" "$COMMENT" -+ -+unlock_rules_file -+ -+exit 0 diff --git a/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch b/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch deleted file mode 100644 index d26c49c0..00000000 --- a/1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/75-persistent-net-generator.rules -+++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -68,7 +68,8 @@ ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="glob - ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" - - # match interface dev_id --ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+# disable due to bnc#882714 -+# ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" - - # do not use "locally administered" MAC address - ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" diff --git a/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch b/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch deleted file mode 100644 index e203d8d3..00000000 --- a/1040-re-enable-dev_id-conditionally-in-persistent-rules.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/75-persistent-net-generator.rules -+++ systemd-210/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -68,8 +68,9 @@ ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="glob - ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" - - # match interface dev_id --# disable due to bnc#882714 --# ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+# HACK: for s390x, if layer2 == 0, dont use dev_id -+ENV{LAYER2}="1", TEST=="device/layer2", ENV{LAYER2}="$attr{device/layer2}" -+ENV{LAYER2}!="0", ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" - - # do not use "locally administered" MAC address - ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" diff --git a/1046-fix-duplicated-rules-with-layer3-interfaces.patch b/1046-fix-duplicated-rules-with-layer3-interfaces.patch deleted file mode 100644 index 47445a83..00000000 --- a/1046-fix-duplicated-rules-with-layer3-interfaces.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/write_net_rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/write_net_rules -+++ systemd-210/src/udev/rule_generator/write_net_rules -@@ -101,6 +101,11 @@ if [ "$MATCHDEVID" ]; then - fi - - if [ "$MATCHID" ]; then -+ ID="$(find_all_rules 'KERNELS==' "$MATCHID")" -+ if [ "$ID" == "$MATCHID" ]; then -+ unlock_rules_file -+ exit 0 -+ fi - match="$match, KERNELS==\"$MATCHID\"" - fi - diff --git a/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch b/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch deleted file mode 100644 index 5a89f11c..00000000 --- a/1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -4,6 +4,7 @@ - - ACTION=="remove", GOTO="net-sriov-names_end" - SUBSYSTEM!="net", GOTO="net-sriov-names_end" -+KERNEL!="eth*", GOTO="net-sriov-names_end" - - IMPORT{cmdline}="net.ifnames" - ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" diff --git a/1051-check-if-NAME-has-a-value.patch b/1051-check-if-NAME-has-a-value.patch deleted file mode 100644 index 3ea5f800..00000000 --- a/1051-check-if-NAME-has-a-value.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -5,6 +5,7 @@ - ACTION=="remove", GOTO="net-sriov-names_end" - SUBSYSTEM!="net", GOTO="net-sriov-names_end" - KERNEL!="eth*", GOTO="net-sriov-names_end" -+NAME=="?*", GOTO="net-sriov-names_end" - - IMPORT{cmdline}="net.ifnames" - ENV{net.ifnames}=="1", GOTO="net-sriov-names_end" diff --git a/1053-better-checks-in-write_net_rules.patch b/1053-better-checks-in-write_net_rules.patch deleted file mode 100644 index 5fa8076d..00000000 --- a/1053-better-checks-in-write_net_rules.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/write_net_rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/write_net_rules -+++ systemd-210/src/udev/rule_generator/write_net_rules -@@ -89,6 +89,12 @@ choose_rules_file - - # the DRIVERS key is needed to not match bridges and VLAN sub-interfaces - if [ "$MATCHADDR" ]; then -+ # Check if MACADDR doesn't exist already in the generated rules -+ MAC="$(/usr/bin/grep -w -o -C1 -m1 "$MATCHADDR" "$RULES_FILE" 2>/dev/null || true)" -+ if [ "$MAC" = "$MATCHADDR" ]; then -+ unlock_rules_file -+ exit 0 -+ fi - match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" - fi - -@@ -101,8 +107,9 @@ if [ "$MATCHDEVID" ]; then - fi - - if [ "$MATCHID" ]; then -- ID="$(find_all_rules 'KERNELS==' "$MATCHID")" -- if [ "$ID" == "$MATCHID" ]; then -+ # Check if KERNEL doesn't exist already in the generated rules -+ KERNEL="$(find_all_rules 'KERNELS==' "$MATCHID")" -+ if [ "$KERNEL" = "$MATCHID" ]; then - unlock_rules_file - exit 0 - fi diff --git a/1088-drop-renaming-of-virtual-interfaces-in-guest.patch b/1088-drop-renaming-of-virtual-interfaces-in-guest.patch deleted file mode 100644 index a25861cd..00000000 --- a/1088-drop-renaming-of-virtual-interfaces-in-guest.patch +++ /dev/null @@ -1,11 +0,0 @@ -Index: systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -=================================================================== ---- systemd-210.orig/src/udev/rule_generator/76-net-sriov-names.rules -+++ systemd-210/src/udev/rule_generator/76-net-sriov-names.rules -@@ -15,6 +15,5 @@ SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACT - - # rename interface if needed - ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" --ENV{INTERFACE_NEW}=="", DRIVERS=="cxgb4vf|igbvf|ixgbevf", NAME="vf$attr{ifindex}" - - LABEL="net-sriov-names_end" diff --git a/systemd-mini.changes b/systemd-mini.changes index 39f4d11c..5a962a4b 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Mon May 18 12:25:54 UTC 2015 - jengelh@inai.de + +- Drop 1021-udev-re-add-persistent-net-rules.patch, + 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, + 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, + 1046-fix-duplicated-rules-with-layer3-interfaces.patch, + 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, + 1051-check-if-NAME-has-a-value.patch, + 1053-better-checks-in-write_net_rules.patch, + 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. + 1021 originally broke parsing of net.ifnames=0 [bnc#931165], + and given that neither the kernel command line needs to be + touched nor the source be patched to reach the unpredictable + naming setup for SLE, all these parts are moved to a separate + package. + ------------------------------------------------------------------- Mon May 18 14:39:47 UTC 2015 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index 95168d8f..1d27ae1a 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -1,7 +1,7 @@ # # spec file for package systemd-mini # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -281,24 +281,10 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch -Patch1021: 1021-udev-re-add-persistent-net-rules.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch -Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) -Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) -Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) -Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch -# PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) -Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) -Patch1053: 1053-better-checks-in-write_net_rules.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch @@ -307,8 +293,6 @@ Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.p Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch # PATCH-FIX-SUSE 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch (bnc#886852) Patch1066: 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch -# PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) -Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch @@ -633,17 +617,10 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1021 -p1 %patch1035 -p1 -%patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1040 -p1 -%patch1046 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1053 -p1 %if %{with blkrrpart} %else %patch1055 -p1 @@ -651,7 +628,6 @@ cp %{SOURCE7} m4/ %patch1060 -p1 %patch1062 -p1 %patch1066 -p1 -%patch1088 -p1 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 @@ -724,10 +700,6 @@ export LDFLAGS CFLAGS="$CFLAGS -DNET_IFNAMES=1" %else CFLAGS="$CFLAGS -DNET_IFNAMES=0" - for rules in 75-persistent-net-generator 76-net-sriov-names - do - sed -ri '/^ENV\{net.ifnames\}=="1", GOTO="[^"]*"$/{ s/=="1"/!="0"/ }' src/udev/rule_generator/${rules}.rules - done %endif cflags -pipe CFLAGS cflags -Wl,-O2 LDFLAGS @@ -1491,10 +1463,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/udev-generate-persistent-rule -%{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs -%{_prefix}/lib/udev/rule_generator.functions -%{_prefix}/lib/udev/write_net_rules %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules diff --git a/systemd.changes b/systemd.changes index 39f4d11c..5a962a4b 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Mon May 18 12:25:54 UTC 2015 - jengelh@inai.de + +- Drop 1021-udev-re-add-persistent-net-rules.patch, + 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch, + 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch, + 1046-fix-duplicated-rules-with-layer3-interfaces.patch, + 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch, + 1051-check-if-NAME-has-a-value.patch, + 1053-better-checks-in-write_net_rules.patch, + 1088-drop-renaming-of-virtual-interfaces-in-guest.patch. + 1021 originally broke parsing of net.ifnames=0 [bnc#931165], + and given that neither the kernel command line needs to be + touched nor the source be patched to reach the unpredictable + naming setup for SLE, all these parts are moved to a separate + package. + ------------------------------------------------------------------- Mon May 18 14:39:47 UTC 2015 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 76876ece..512e2356 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,7 +1,7 @@ # # spec file for package systemd # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -276,24 +276,10 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931) Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch -# PATCH-FIX-SUSE 1021-udev-re-add-persistent-net-rules.patch -Patch1021: 1021-udev-re-add-persistent-net-rules.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch -Patch1036: 1036-rules-disable-usage-of-dev_id-in-persistent-rules.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch -# PATCH-FIX-SUSE 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch (bnc#884403 and bnc#882714) -Patch1040: 1040-re-enable-dev_id-conditionally-in-persistent-rules.patch -# PATCH-FIX-SUSE 1046-fix-duplicated-rules-with-layer3-interfaces.patch (bnc#882714) -Patch1046: 1046-fix-duplicated-rules-with-layer3-interfaces.patch -# PATCH-FIX-SUSE 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch (bnc#885232) -Patch1050: 1050-only-rename-SRIOV-VF-devices-when-name-starts-with-eth.patch -# PATCH-FIX-SUSE 1051-check-if-NAME-has-a-value.patch (bnc#885232) -Patch1051: 1051-check-if-NAME-has-a-value.patch -# PATCH-FIX-SUSE 1053-better-checks-in-write_net_rules.patch (bnc#888178) -Patch1053: 1053-better-checks-in-write_net_rules.patch # PATCH-FIX-SUSE 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch Patch1055: 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch # PATCH-FIX-SUSE 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch @@ -302,8 +288,6 @@ Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.p Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch # PATCH-FIX-SUSE 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch (bnc#886852) Patch1066: 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch -# PATCH-FIX-SUSE 1088-drop-renaming-of-virtual-interfaces-in-guest.patch (bnc#898432) -Patch1088: 1088-drop-renaming-of-virtual-interfaces-in-guest.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch @@ -628,17 +612,10 @@ cp %{SOURCE7} m4/ %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 -%patch1021 -p1 %patch1035 -p1 -%patch1036 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif -%patch1040 -p1 -%patch1046 -p1 -%patch1050 -p1 -%patch1051 -p1 -%patch1053 -p1 %if %{with blkrrpart} %else %patch1055 -p1 @@ -646,7 +623,6 @@ cp %{SOURCE7} m4/ %patch1060 -p1 %patch1062 -p1 %patch1066 -p1 -%patch1088 -p1 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 @@ -719,10 +695,6 @@ export LDFLAGS CFLAGS="$CFLAGS -DNET_IFNAMES=1" %else CFLAGS="$CFLAGS -DNET_IFNAMES=0" - for rules in 75-persistent-net-generator 76-net-sriov-names - do - sed -ri '/^ENV\{net.ifnames\}=="1", GOTO="[^"]*"$/{ s/=="1"/!="0"/ }' src/udev/rule_generator/${rules}.rules - done %endif cflags -pipe CFLAGS cflags -Wl,-O2 LDFLAGS @@ -1486,10 +1458,7 @@ exit 0 %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/udev-generate-persistent-rule -%{_prefix}/lib/udev/net-set-sriov-names %{_prefix}/lib/udev/remount-tmpfs -%{_prefix}/lib/udev/rule_generator.functions -%{_prefix}/lib/udev/write_net_rules %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules