Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wicked for openSUSE:Factory checked in at 2022-12-24 14:50:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wicked (Old) and /work/SRC/openSUSE:Factory/.wicked.new.1563 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "wicked" Sat Dec 24 14:50:49 2022 rev:91 rq:1044104 version:0.6.71 Changes: -------- --- /work/SRC/openSUSE:Factory/wicked/wicked.changes 2022-12-13 18:54:37.330932642 +0100 +++ /work/SRC/openSUSE:Factory/.wicked.new.1563/wicked.changes 2022-12-24 14:50:50.535124238 +0100 @@ -1,0 +2,7 @@ +Wed Dec 21 16:15:11 UTC 2022 - Marius Tomaschewski <mt@suse.com> + +- version 0.6.71 +- dhcp: enable raw-ip support for wwan-qmi interfaces (jsc#PED-90) +- schema: fix the ip rule to-selector to handle network prefixes + +------------------------------------------------------------------- Old: ---- wicked-0.6.70.tar.bz2 New: ---- wicked-0.6.71.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wicked.spec ++++++ --- /var/tmp/diff_new_pack.CuBED9/_old 2022-12-24 14:50:51.107127575 +0100 +++ /var/tmp/diff_new_pack.CuBED9/_new 2022-12-24 14:50:51.111127598 +0100 @@ -18,7 +18,7 @@ %define release_prefix %{?snapshot:%{snapshot}}%{!?snapshot:0} Name: wicked -Version: 0.6.70 +Version: 0.6.71 Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure License: GPL-2.0-or-later @@ -42,7 +42,7 @@ BuildRequires: make %if %{with wicked_devel} # libwicked-%{version}.so shlib package compatible match for wicked-devel -Provides: libwicked-0_6_70 = %{version}-%{release} +Provides: libwicked-0_6_71 = %{version}-%{release} %endif # uninstall obsolete libwicked-0-6 (libwicked-0.so.6, wicked < 0.6.60) Provides: libwicked-0-6 = %{version} @@ -169,7 +169,7 @@ Group: Development/Libraries/C and C++ Requires: dbus-1-devel Requires: libnl3-devel -Requires: libwicked-0_6_70 = %{version}-%{release} +Requires: libwicked-0_6_71 = %{version}-%{release} %description devel Wicked is a network configuration infrastructure incorporating a number ++++++ wicked-0.6.70.tar.bz2 -> wicked-0.6.71.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/ChangeLog new/wicked-0.6.71/ChangeLog --- old/wicked-0.6.70/ChangeLog 2022-10-20 17:57:29.000000000 +0200 +++ new/wicked-0.6.71/ChangeLog 2022-12-21 16:54:11.000000000 +0100 @@ -1,3 +1,60 @@ +commit 5ae7be82a74b17f788835238aeed2c7a65f98fa4 +Author: Marius Tomaschewski <mt@suse.com> +Date: Wed Dec 21 12:55:22 2022 +0100 + + version 0.6.71 + +commit 1058174725390c1de17dfd99c9492637f695c7f5 +Merge: fff1b6e0 947c314d +Author: cfconrad <cfamullaconrad@suse.com> +Date: Wed Dec 21 11:01:26 2022 +0100 + + Merge pull request https://github.com/openSUSE/wicked/pull/940 + + dhcp: enable raw-ip support for wwan-qmi interfaces (jsc#PED-90) + +commit 947c314d8009fafd154d276d4455e3733e28fcf3 +Author: Marius Tomaschewski <mt@suse.com> +Date: Fri Dec 9 13:07:24 2022 +0100 + + dhcp: adjust header for `raw-ip` mode on wwan-qmi + + Also add comment with most important RFC references about + htype,hlen,chaddr,ciaddr and broadcast-bit flag in header. + +commit ddbd38ecfa05b8dbf29ed7f311d271c861634422 +Author: Marius Tomaschewski <mt@suse.com> +Date: Thu Dec 1 20:47:15 2022 +0100 + + dhcp: fix "do bits" to enable arp if available + +commit f3652059c8562f035964a6e53ed44590c9bae327 +Author: Marius Tomaschewski <mt@suse.com> +Date: Thu Dec 1 20:26:15 2022 +0100 + + dhcp: remove hwaddr and arp availability checks + +commit a982233266e860d1908cdc9cf3ff669a93f12424 +Author: Marius Tomaschewski <mt@suse.com> +Date: Wed Nov 30 22:07:58 2022 +0100 + + dhcp: enable on wwan (arphdr-none) interfaces + +commit 4e8bf73a598fef9a5a80c326beca9d0bccbaaec1 +Author: Thorsten Kukuk <kukuk@suse.com> +Date: Fri Dec 9 08:22:16 2022 +0100 + + Add /etc/sysconfig/network to file list + + Add /etc/sysconfig/network to file list of wicked-service sub package + to fix build failures with cleaned up filesystem package. + +commit 2bb64371c46c925720a42ad927e5a8b0d034a357 +Author: David Hedberg <david.hedberg@findity.com> +Date: Mon Nov 14 16:30:30 2022 +0100 + + schema: Make the rule to-selector handle network prefixes + commit 1b100a34a13bd072ae18690912125b2021d9e8ad Author: Clemens Famulla-Conrad <cfamullaconrad@suse.de> Date: Wed Oct 19 13:09:21 2022 +0200 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/VERSION new/wicked-0.6.71/VERSION --- old/wicked-0.6.70/VERSION 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/VERSION 2022-12-21 14:27:55.000000000 +0100 @@ -1 +1 @@ -0.6.70 +0.6.71 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/configure new/wicked-0.6.71/configure --- old/wicked-0.6.70/configure 2022-10-20 17:56:45.000000000 +0200 +++ new/wicked-0.6.71/configure 2022-12-21 16:53:17.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for wicked 0.6.70. +# Generated by GNU Autoconf 2.69 for wicked 0.6.71. # # Report bugs to <http://bugs.opensuse.org>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='wicked' PACKAGE_TARNAME='wicked' -PACKAGE_VERSION='0.6.70' -PACKAGE_STRING='wicked 0.6.70' +PACKAGE_VERSION='0.6.71' +PACKAGE_STRING='wicked 0.6.71' PACKAGE_BUGREPORT='http://bugs.opensuse.org' PACKAGE_URL='https://github.com/openSUSE/wicked' @@ -1395,7 +1395,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures wicked 0.6.70 to adapt to many kinds of systems. +\`configure' configures wicked 0.6.71 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1465,7 +1465,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of wicked 0.6.70:";; + short | recursive ) echo "Configuration of wicked 0.6.71:";; esac cat <<\_ACEOF @@ -1636,7 +1636,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -wicked configure 0.6.70 +wicked configure 0.6.71 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2235,7 +2235,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by wicked $as_me 0.6.70, which was +It was created by wicked $as_me 0.6.71, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3098,7 +3098,7 @@ # Define the identity of the package. PACKAGE='wicked' - VERSION='0.6.70' + VERSION='0.6.71' cat >>confdefs.h <<_ACEOF @@ -15825,7 +15825,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by wicked $as_me 0.6.70, which was +This file was extended by wicked $as_me 0.6.71, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15892,7 +15892,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -wicked config.status 0.6.70 +wicked config.status 0.6.71 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/schema/interface.xml new/wicked-0.6.71/schema/interface.xml --- old/wicked-0.6.70/schema/interface.xml 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/schema/interface.xml 2022-12-21 14:27:49.000000000 +0100 @@ -80,7 +80,7 @@ <priority type="uint32" /> <invert type="boolean"/> <from type="network-address-prefix"/> - <to type="network-address"/> + <to type="network-address-prefix"/> <iif type="string" /> <oif type="string" /> <tos type="uint32" /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/src/capture.c new/wicked-0.6.71/src/capture.c --- old/wicked-0.6.70/src/capture.c 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/src/capture.c 2022-12-21 14:27:49.000000000 +0100 @@ -587,22 +587,6 @@ devinfo->mtu = link->mtu ? link->mtu : MTU_MAX; devinfo->hwaddr = link->hwaddr; - if (devinfo->hwaddr.len == 0) { - ni_error("%s: empty MAC address, cannot do packet level networking yet", - ifname); - return -1; - } - if (devinfo->hwaddr.type == ARPHRD_VOID) { - ni_error("%s: void arp type, cannot do packet level networking yet", - ifname); - return -1; - } - - if (devinfo->hwaddr.type == ARPHRD_NONE) { - ni_warn("%s: no arp type, trying to use ether for capturing", ifname); - devinfo->hwaddr.type = ARPHRD_ETHER; - } - return 0; } @@ -628,17 +612,6 @@ return -1; } - if (devinfo->hwaddr.len == 0) { - ni_error("%s: empty MAC address, cannot do packet level networking yet", - ifname); - return -1; - } - if (devinfo->hwaddr.type == ARPHRD_VOID) { - ni_error("%s: void arp type, cannot do packet level networking yet", - ifname); - return -1; - } - return 0; } @@ -696,7 +669,7 @@ /* Destination address defaults to broadcast */ destaddr = protinfo->eth_destaddr; - if (destaddr.len == 0 + if (destaddr.len == 0 && ni_link_address_length(devinfo->hwaddr.type) > 0 && ni_link_address_get_broadcast(devinfo->hwaddr.type, &destaddr) < 0) { ni_error("cannot get broadcast address for %s (bad iftype)", devinfo->ifname); return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/src/dhcp4/device.c new/wicked-0.6.71/src/dhcp4/device.c --- old/wicked-0.6.70/src/dhcp4/device.c 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/src/dhcp4/device.c 2022-12-21 14:27:49.000000000 +0100 @@ -30,7 +30,7 @@ #include "duid.h" -static unsigned int ni_dhcp4_do_bits(const ni_config_dhcp4_t *, unsigned int); +static unsigned int ni_dhcp4_do_bits(const ni_dhcp4_device_t *, unsigned int); static const char * ni_dhcp4_print_doflags(unsigned int); static void ni_dhcp4_config_set_request_options(const char *, ni_uint_array_t *, const ni_string_array_t *); @@ -325,7 +325,7 @@ config->update = info->update; config->update &= ni_config_addrconf_update_mask(NI_ADDRCONF_DHCP, AF_INET); } - config->doflags = ni_dhcp4_do_bits(ni_config_dhcp4_find_device(dev->ifname), config->update); + config->doflags = ni_dhcp4_do_bits(dev, config->update); config->route_priority = info->route_priority; config->route_set_src = info->route_set_src; @@ -446,7 +446,7 @@ * DHCP4_DO_* masks */ static unsigned int -ni_dhcp4_do_bits(const ni_config_dhcp4_t *conf, unsigned int update_flags) +ni_dhcp4_do_bits(const ni_dhcp4_device_t *dev, unsigned int update_flags) { static unsigned int do_mask[32] = { [NI_ADDRCONF_UPDATE_DEFAULT_ROUTE] = DHCP4_DO_GATEWAY, @@ -463,8 +463,15 @@ [NI_ADDRCONF_UPDATE_BOOT] = DHCP4_DO_ROOT, [NI_ADDRCONF_UPDATE_TZ] = DHCP4_DO_POSIX_TZ, }; - unsigned int bit, result = DHCP4_DO_ARP | DHCP4_DO_CSR - | DHCP4_DO_STATIC_ROUTES; + unsigned int bit, result = DHCP4_DO_CSR | DHCP4_DO_STATIC_ROUTES; + const ni_config_dhcp4_t *conf = NULL; + const ni_netdev_t *ifp; + + conf = ni_config_dhcp4_find_device(dev ? dev->ifname : NULL); + if ((ifp = ni_dhcp4_device_netdev(dev))) { + if (ifp->link.ifflags & NI_IFF_ARP_ENABLED) + result |= DHCP4_DO_ARP; + } for (bit = 0; bit < 32; ++bit) { if (update_flags & NI_BIT(bit)) @@ -1136,6 +1143,8 @@ * we've simply did not tested it on other links ... */ switch (ifp->link.hwaddr.type) { + case ARPHRD_NONE: + break; case ARPHRD_ETHER: case ARPHRD_INFINIBAND: if (ifp->link.masterdev.index) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/src/dhcp4/protocol.c new/wicked-0.6.71/src/dhcp4/protocol.c --- old/wicked-0.6.70/src/dhcp4/protocol.c 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/src/dhcp4/protocol.c 2022-12-21 14:27:49.000000000 +0100 @@ -621,13 +621,6 @@ "%s: using client-id: %s", dev->ifname, ni_print_hex(options->client_id.data, options->client_id.len)); - } else - if (!message->hwlen) { - ni_error("%s: cannot construct %s without usable hw-addr and client-id", - dev->ifname, ni_dhcp4_message_name(msg_code)); - return -1; - } else { - return 1; /* skipped client-id */ } return 0; } @@ -653,34 +646,128 @@ return 0; } - static int __ni_dhcp4_build_msg_put_hwspec(const ni_dhcp4_device_t *dev, ni_dhcp4_message_t *message) { switch (dev->system.hwaddr.type) { case ARPHRD_ETHER: case ARPHRD_IEEE802: - if (dev->system.hwaddr.len && dev->system.hwaddr.len <= sizeof(message->chaddr)) { + /* + * See https://www.rfc-editor.org/rfc/rfc2131#section-2 + * + * FIELD OCTETS DESCRIPTION + * ----- ------ ----------- + * htype 1 Hardware address type, see ARP section in + * "Assigned Numbers" RFC; e.g., '1' = 10mb ethernet. + * hlen 1 Hardware address length (e.g. '6' for 10mb ethernet). + * chaddr 16 Client hardware address. + * [...] + * flags 2 Flags (see figure 2). + * ciaddr 4 Client IP address; only filled in if client is in + * BOUND, RENEW or REBINDING state and can respond + * to ARP requests. + * + * To work around some clients that cannot accept IP unicast datagrams + * before the TCP/IP software is configured [...] DHCP uses the 'flags' + * field. The leftmost bit is defined as the BROADCAST (B) flag. + * + * https://www.rfc-editor.org/rfc/rfc2131#section-3.5 + * The client fills in the 'ciaddr' field only when correctly configured + * with an IP address in BOUND, RENEWING or REBINDING state. + * + * https://www.rfc-editor.org/rfc/rfc2131#section-4.1 + * A client that cannot receive unicast IP datagrams until its protocol + * software has been configured with an IP address SHOULD set the + * BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or + * DHCPREQUEST messages that client sends. + * A client that can receive unicast IP datagrams before its protocol + * software has been configured SHOULD clear the BROADCAST bit to 0. + */ + message->hwtype = (uint8_t)dev->system.hwaddr.type; + if (dev->system.hwaddr.len && + dev->system.hwaddr.len <= sizeof(message->chaddr)) { message->hwlen = dev->system.hwaddr.len; - memcpy(&message->chaddr, dev->system.hwaddr.data, dev->system.hwaddr.len); + memcpy(&message->chaddr, dev->system.hwaddr.data, + dev->system.hwaddr.len); } - if (ni_tristate_is_enabled(dev->config->broadcast)) + + if (ni_tristate_is_enabled(dev->config->broadcast) && + message->ciaddr == 0) message->flags = htons(BROADCAST_FLAG); break; case ARPHRD_IEEE1394: + /* + * See http://tools.ietf.org/html/rfc2855 + * + * 'htype' (hardware address type) MUST be 24 [ARPPARAM]. + * + * 'hlen' (hardware address length) MUST be 0. + * + * The 'chaddr' (client hardware address) field is reserved. + * The sender MUST set this field to zero, and the recipient + * and the relay agent MUST ignore its value on receipt. + * + * A DHCP client on 1394 SHOULD set a BROADCAST flag in + * DHCPDISCOVER and DHCPREQUEST messages (and set 'ciaddr' + * to zero) to ensure that the server (or the relay agent) + * broadcasts its reply to the client. + * + * 'client identifier' option MUST be used in DHCP messages + * from the client [...] due to the lack of the 'chaddr'. + */ case ARPHRD_INFINIBAND: - if (ni_tristate_is_disabled(dev->config->broadcast)) - ni_warn_once("%s: broadcast is mandatory on infiniband", dev->ifname); - /* See http://tools.ietf.org/html/rfc4390 + /* + * See http://tools.ietf.org/html/rfc4390 * - * Note: set the ciaddr before if needed. + * "htype" (hardware address type) MUST be 32 [ARPPARAM]. + * + * "hlen" (hardware address length) MUST be 0. + * + * "chaddr" (client hardware address) field MUST be zeroed. + * + * "client-identifier" option MUST be used in DHCP messages. + * + * A DHCP client on IPoIB MUST set the BROADCAST flag in + * DHCPDISCOVER and DHCPREQUEST messages (and set "ciaddr" + * to zero) to ensure that the server (or the relay agent) + * broadcasts its reply to the client. + */ + message->hwtype = dev->system.hwaddr.type; + + if (ni_tristate_is_disabled(dev->config->broadcast)) { + ni_warn_once("%s: broadcast is mandatory on infiniband", + dev->ifname); + } + + /* + * Note: set the ciaddr before if/as needed. */ - message->hwlen = 0; if (message->ciaddr == 0) message->flags = htons(BROADCAST_FLAG); break; + case ARPHRD_NONE: + /* + * No specific RFC known. + * A non-arp,non-broadcast point-to-point interface type + * transporting IP packets between two peers and not having + * any hardware packet layer or address. + * + * Used on wwan-qmi interfaces in `raw-ip` mode which seem + * to expect fake htype,hlen ethernet settings with zeroed + * client hardware address in chaddr. + * + * BROADCAST response flag shouldn't be needed (POINTOPOINT); + * set it on config request only. + */ + message->hwtype = (uint8_t)ARPHRD_ETHER; + message->hwlen = ni_link_address_length(ARPHRD_ETHER); + if (ni_tristate_is_enabled(dev->config->broadcast) && + message->ciaddr == 0) + message->flags = htons(BROADCAST_FLAG); + break; + default: ni_error("%s: dhcp4 unsupported hardware type %s (0x%x)", dev->ifname, ni_arphrd_type_to_name(dev->system.hwaddr.type), @@ -716,7 +803,6 @@ message->xid = htonl(dev->dhcp4.xid); message->secs = htons(ni_dhcp4_device_uptime(dev, 0xFFFF)); message->cookie = htonl(MAGIC_COOKIE); - message->hwtype = dev->system.hwaddr.type; ni_dhcp4_option_put8(msgbuf, DHCP4_MESSAGETYPE, msg_code); ni_debug_verbose(NI_LOG_DEBUG1, NI_TRACE_DHCP, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/src/dhcp6/device.c new/wicked-0.6.71/src/dhcp6/device.c --- old/wicked-0.6.70/src/dhcp6/device.c 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/src/dhcp6/device.c 2022-12-21 14:27:49.000000000 +0100 @@ -1692,6 +1692,8 @@ switch (ifp->link.hwaddr.type) { case ARPHRD_PPP: break; + case ARPHRD_NONE: + break; case ARPHRD_ETHER: case ARPHRD_INFINIBAND: if (ifp->link.masterdev.index) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/wicked.spec new/wicked-0.6.71/wicked.spec --- old/wicked-0.6.70/wicked.spec 2022-10-20 17:56:49.000000000 +0200 +++ new/wicked-0.6.71/wicked.spec 2022-12-21 16:53:23.000000000 +0100 @@ -18,7 +18,7 @@ %define release_prefix %{?snapshot:%{snapshot}}%{!?snapshot:0} Name: wicked -Version: 0.6.70 +Version: 0.6.71 Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure License: GPL-2.0-or-later @@ -42,7 +42,7 @@ BuildRequires: make %if %{with wicked_devel} # libwicked-%{version}.so shlib package compatible match for wicked-devel -Provides: libwicked-0_6_70 = %{version}-%{release} +Provides: libwicked-0_6_71 = %{version}-%{release} %endif # uninstall obsolete libwicked-0-6 (libwicked-0.so.6, wicked < 0.6.60) Provides: libwicked-0-6 = %{version} @@ -168,7 +168,7 @@ Group: Development/Libraries/C and C++ Requires: dbus-1-devel Requires: libnl3-devel -Requires: libwicked-0_6_70 = %{version}-%{release} +Requires: libwicked-0_6_71 = %{version}-%{release} %description devel Wicked is a network configuration infrastructure incorporating a number @@ -399,6 +399,7 @@ %_unitdir/wickedd.service %_unitdir/wicked.service %_unitdir/wickedd-pppd@.service +%dir /etc/sysconfig/network %attr(0600,root,root) %config /etc/sysconfig/network/ifcfg-lo %_sbindir/ifup %if !0%{?usrmerged} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.70/wicked.spec.in new/wicked-0.6.71/wicked.spec.in --- old/wicked-0.6.70/wicked.spec.in 2022-10-20 17:56:35.000000000 +0200 +++ new/wicked-0.6.71/wicked.spec.in 2022-12-21 14:27:49.000000000 +0100 @@ -399,6 +399,7 @@ %_unitdir/wickedd.service %_unitdir/wicked.service %_unitdir/wickedd-pppd@.service +%dir /etc/sysconfig/network %attr(0600,root,root) %config /etc/sysconfig/network/ifcfg-lo %_sbindir/ifup %if !0%{?usrmerged}