SHA256
1
0
forked from pool/systemd

Accepting request 311646 from Base:System

- Remove libudev0 from baselibs.conf 

- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch
  as now upstream code 
- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix
  bsc#933365 and boo#934077

- Add 1098-systemd-networkd-alias-network-service.patch to alias
  network.service the same way NetworkManager and wicked does.
  This is needed by yast2 and other parts of the system. boo#933092

- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use
  the new return values of proc_cmdline() in enable_name_policy()
  this should fix boo#931165

- 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.

OBS-URL: https://build.opensuse.org/request/show/311646
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=221
This commit is contained in:
Dominique Leuenberger 2015-06-12 18:24:37 +00:00 committed by Git OBS Bridge
parent ac1904b70a
commit acb10341e6
16 changed files with 187 additions and 764 deletions

View File

@ -0,0 +1,69 @@
Based on deff2d3e18e831d63bf98dd4114e4e35e41966e8 Mon Sep 17 00:00:00 2001
From: Werner Fink <werner@suse.de>
Date: Wed, 10 Jun 2015 10:47:13 +0200
Subject: [PATCH] Let some boolean survive a daemon-reload
Without the boolean bus_name_good services as well as cgroup_realized
for units a unit of Type=dbus and ExecReload sending SIGHUP to $MAINPID
will be terminated if systemd will be daemon reloaded.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=746151
https://bugs.freedesktop.org/show_bug.cgi?id=78311
https://bugzilla.opensuse.org/show_bug.cgi?id=934077
---
src/core/service.c | 9 +++++++++
src/core/unit.c | 11 +++++++++++
2 files changed, 20 insertions(+)
--- systemd-219/src/core/service.c
+++ systemd-219/src/core/service.c 2015-06-11 12:24:36.769519910 +0000
@@ -1920,6 +1920,7 @@ static int service_serialize(Unit *u, FI
unit_serialize_item_format(u, f, "main-pid", PID_FMT, s->main_pid);
unit_serialize_item(u, f, "main-pid-known", yes_no(s->main_pid_known));
+ unit_serialize_item(u, f, "bus-name-good", yes_no(s->bus_name_good));
if (s->status_text)
unit_serialize_item(u, f, "status-text", s->status_text);
@@ -2044,6 +2045,14 @@ static int service_deserialize_item(Unit
log_unit_debug(u->id, "Failed to parse main-pid-known value %s", value);
else
s->main_pid_known = b;
+ } else if (streq(key, "bus-name-good")) {
+ int b;
+
+ b = parse_boolean(value);
+ if (b < 0)
+ log_unit_debug(u->id, "Failed to parse bus-name-good value %s", value);
+ else
+ s->bus_name_good = b;
} else if (streq(key, "status-text")) {
char *t;
--- systemd-219/src/core/unit.c
+++ systemd-219/src/core/unit.c 2015-06-11 12:30:56.805519155 +0000
@@ -2612,6 +2612,7 @@ int unit_serialize(Unit *u, FILE *f, FDS
if (u->cgroup_path)
unit_serialize_item(u, f, "cgroup", u->cgroup_path);
+ unit_serialize_item(u, f, "cgroup-realized", yes_no(u->cgroup_realized));
if (serialize_jobs) {
if (u->job) {
@@ -2803,6 +2804,16 @@ int unit_deserialize(Unit *u, FILE *f, F
assert(hashmap_put(u->manager->cgroup_unit, s, u) == 1);
continue;
+ } else if (streq(l, "cgroup-realized")) {
+ int b;
+
+ b = parse_boolean(v);
+ if (b < 0)
+ log_debug("Failed to parse cgroup-realized bool %s", v);
+ else
+ u->cgroup_realized = b;
+
+ continue;
}
if (unit_can_serialize(u)) {

View File

@ -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 <md@Linux.IT>
+
+# 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 <http://www.gnu.org/licenses/>.
+
+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=<name> 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 <md@Linux.IT>
+# Copyright (C) 2007 Kay Sievers <kay.sievers@vrfy.org>
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+# debug, if UDEV_LOG=<debug>
+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

View File

@ -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}=""

View File

@ -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}=""

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -1,26 +0,0 @@
Exist only to be able to apply the patch
1056-udevd-add-event-timeout-commandline-option.patch
without the BLKRRPART ioctl patches.
--- systemd-210/src/udev/udevd.c
+++ systemd-210/src/udev/udevd.c 2014-07-30 11:52:34.318235685 +0000
@@ -1311,16 +1311,16 @@ int main(int argc, char *argv[])
if (worker->state != WORKER_RUNNING)
continue;
- if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) {
+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * USEC_PER_SEC) {
log_error("worker [%u] %s timeout; kill it", worker->pid,
worker->event ? worker->event->devpath : "<idle>");
kill(worker->pid, SIGKILL);
worker->state = WORKER_KILLED;
+
/* drop reference taken for state 'running' */
worker_unref(worker);
if (worker->event) {
- log_error("seq %llu '%s' killed",
- udev_device_get_seqnum(worker->event->dev), worker->event->devpath);
+ log_error("seq %llu '%s' killed", udev_device_get_seqnum(worker->event->dev), worker->event->devpath);
worker->event->exitcode = -64;
event_queue_delete(worker->event, true);
worker->event = NULL;

View File

@ -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"

View File

@ -0,0 +1,10 @@
Index: systemd-219/units/systemd-networkd.service.in
===================================================================
--- systemd-219.orig/units/systemd-networkd.service.in
+++ systemd-219/units/systemd-networkd.service.in
@@ -29,4 +29,5 @@ WatchdogSec=1min
[Install]
WantedBy=multi-user.target
+Alias=network.service
Also=systemd-networkd.socket

View File

@ -5,7 +5,6 @@ systemd
# postun "if [ "$1" == "0" ]; then"
# postun "<prefix>%{_sbindir}/pam-config -d --systemd || :"
# postun "fi"
libudev0
libgudev-1_0-0
libudev1
nss-myhostname

View File

@ -1,3 +1,47 @@
-------------------------------------------------------------------
Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de
- Remove libudev0 from baselibs.conf
-------------------------------------------------------------------
Thu Jun 11 12:12:58 UTC 2015 - werner@suse.de
- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch
as now upstream code
- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix
bsc#933365 and boo#934077
-------------------------------------------------------------------
Tue Jun 2 13:33:24 UTC 2015 - pwieczorkiewicz@suse.com
- Add 1098-systemd-networkd-alias-network-service.patch to alias
network.service the same way NetworkManager and wicked does.
This is needed by yast2 and other parts of the system. boo#933092
-------------------------------------------------------------------
Mon May 18 14:39:47 UTC 2015 - werner@suse.de
- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use
the new return values of proc_cmdline() in enable_name_policy()
this should fix boo#931165
-------------------------------------------------------------------
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 Mar 16 15:35:31 UTC 2015 - werner@suse.de
@ -1524,7 +1568,7 @@ Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de
0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch
0007-service-flush-status-text-and-errno-values-each-time.patch
------------------------------------------------------------------
-------------------------------------------------------------------
Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de
- Add upstream patch
@ -2366,7 +2410,7 @@ Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de
make sure that systemd can talk with dbus-daemon even on big
endian systems (bnc#866732)
-----------------------------------------------------------------
-------------------------------------------------------------------
Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com
- Due to previous reason, resurrect systemd-dbus-system-bus-address.patch
@ -2374,7 +2418,7 @@ Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com
needed for quering default DBus directories, which we nowpass to configure.
This also unbreaks libdbus <-> systemd-miniBuild Cycle
-----------------------------------------------------------------
-------------------------------------------------------------------
Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de
- Add or port upstream bugfix patches:
@ -2858,6 +2902,7 @@ Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de
unmounted before the interface is down (bnc#861489)
+-------------------------------------------------------------------
-------------------------------------------------------------------
Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de
- enable compat-libs, BuildRequires binutils-gold

View File

@ -254,6 +254,8 @@ Patch520: systemd-add-user-keep.patch
# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009)
Patch521: kbd-model-map.patch
Patch522: 0001-core-rework-device-state-logic.patch
# PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM
Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch
# UDEV PATCHES
# ============
@ -281,40 +283,24 @@ 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
Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch
# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977)
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
Patch1096: 1096-new-udev-root-symlink-generator.patch
# PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch
Patch1097: 1097-udevd-increase-maximum-number-of-children.patch
# PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch
Patch1098: 1098-systemd-networkd-alias-network-service.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@ -622,6 +608,7 @@ cp %{SOURCE7} m4/
%patch520 -p1
%patch521 -p1
%patch522 -p1
%patch523 -p1
# udev patches
%patch1001 -p1
@ -633,28 +620,17 @@ 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
%endif
%patch1060 -p1
%patch1062 -p1
%patch1066 -p1
%patch1088 -p1
%patch1095 -p1
%patch1096 -p1
%patch1097 -p1
%patch1098 -p1
# remove patch backups
find -name '*.orig' -exec rm -f '{}' \+
@ -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

View File

@ -1,3 +1,47 @@
-------------------------------------------------------------------
Thu Jun 11 14:48:03 UTC 2015 - werner@suse.de
- Remove libudev0 from baselibs.conf
-------------------------------------------------------------------
Thu Jun 11 12:12:58 UTC 2015 - werner@suse.de
- Drop 1055-let-9719859c07aa13539ed2cd4b31972cd30f678543-apply.patch
as now upstream code
- Add 0001-Let-some-boolean-survive-a-daemon-reload.patch to fix
bsc#933365 and boo#934077
-------------------------------------------------------------------
Tue Jun 2 13:33:24 UTC 2015 - pwieczorkiewicz@suse.com
- Add 1098-systemd-networkd-alias-network-service.patch to alias
network.service the same way NetworkManager and wicked does.
This is needed by yast2 and other parts of the system. boo#933092
-------------------------------------------------------------------
Mon May 18 14:39:47 UTC 2015 - werner@suse.de
- Modify patch 1021-udev-re-add-persistent-net-rules.patch to use
the new return values of proc_cmdline() in enable_name_policy()
this should fix boo#931165
-------------------------------------------------------------------
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 Mar 16 15:35:31 UTC 2015 - werner@suse.de
@ -1524,7 +1568,7 @@ Tue Jul 8 10:59:26 UTC 2014 - werner@suse.de
0006-systemctl-show-StatusErrno-value-in-systemctl-status.patch
0007-service-flush-status-text-and-errno-values-each-time.patch
------------------------------------------------------------------
-------------------------------------------------------------------
Tue Jul 8 10:41:31 UTC 2014 - werner@suse.de
- Add upstream patch
@ -2366,7 +2410,7 @@ Wed Mar 12 14:35:10 UTC 2014 - werner@suse.de
make sure that systemd can talk with dbus-daemon even on big
endian systems (bnc#866732)
-----------------------------------------------------------------
-------------------------------------------------------------------
Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com
- Due to previous reason, resurrect systemd-dbus-system-bus-address.patch
@ -2374,7 +2418,7 @@ Tue Mar 11 11:32:37 UTC 2014 - hrvoje.senjan@gmail.com
needed for quering default DBus directories, which we nowpass to configure.
This also unbreaks libdbus <-> systemd-miniBuild Cycle
-----------------------------------------------------------------
-------------------------------------------------------------------
Tue Mar 11 11:01:53 UTC 2014 - werner@suse.de
- Add or port upstream bugfix patches:
@ -2858,6 +2902,7 @@ Wed Feb 26 12:43:17 UTC 2014 - werner@suse.de
unmounted before the interface is down (bnc#861489)
+-------------------------------------------------------------------
-------------------------------------------------------------------
Sun Feb 23 23:47:06 UTC 2014 - stefan.bruens@rwth-aachen.de
- enable compat-libs, BuildRequires binutils-gold

View File

@ -249,6 +249,8 @@ Patch520: systemd-add-user-keep.patch
# PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009)
Patch521: kbd-model-map.patch
Patch522: 0001-core-rework-device-state-logic.patch
# PATCH-FIX-SUSE/PATCH-FIX-UPSTREAM
Patch523: 0001-Let-some-boolean-survive-a-daemon-reload.patch
# UDEV PATCHES
# ============
@ -276,40 +278,24 @@ 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
Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch
# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977)
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
Patch1096: 1096-new-udev-root-symlink-generator.patch
# PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch
Patch1097: 1097-udevd-increase-maximum-number-of-children.patch
# PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch
Patch1098: 1098-systemd-networkd-alias-network-service.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@ -617,6 +603,7 @@ cp %{SOURCE7} m4/
%patch520 -p1
%patch521 -p1
%patch522 -p1
%patch523 -p1
# udev patches
%patch1001 -p1
@ -628,28 +615,17 @@ 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
%endif
%patch1060 -p1
%patch1062 -p1
%patch1066 -p1
%patch1088 -p1
%patch1095 -p1
%patch1096 -p1
%patch1097 -p1
%patch1098 -p1
# remove patch backups
find -name '*.orig' -exec rm -f '{}' \+
@ -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