[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1016786: marked as done (bullseye-pu: package systemd/247.3-7+deb11u1)



Your message dated Sat, 10 Sep 2022 13:36:19 +0100
with message-id <92fe43e7805e82e43100a6471ccbf91cd9a12944.camel@adam-barratt.org.uk>
and subject line Closing requests for updates in 11.5
has caused the Debian Bug report #1016786,
regarding bullseye-pu: package systemd/247.3-7+deb11u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1016786: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1016786
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: pkg-systemd-maintainers@lists.alioth.debian.org

Hi,

I'd like to make a stable upload for systemd fixing two issues in
systemd-detect-virt

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1013342
 systemd - Please backport support for Hyper-V on arm64 to stable

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1016157
 systemd-detect-virt fails to detect Openstack on arm64

All changes are cherry-picks from upstream Git and are already in
unstable/testing.


While at it, I also pulled a patch to fix build failures when systemd is
built against newer kernel headers (>= 5.14).

debdiff is attached.

Regards,
Michael
diff --git a/debian/changelog b/debian/changelog
index ddb3701..b1b7f43 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+systemd (247.3-7+deb11u1) bullseye; urgency=medium
+
+  * Drop bundled copy of linux/if_arp.h.
+    Fixes build failures with newer kernel headers.
+  * virt: support detection for ARM64 Hyper-V guests (Closes: #1013342)
+  * virt: detect OpenStack instance as KVM on arm (Closes: #1016157)
+
+ -- Michael Biebl <biebl@debian.org>  Sun, 07 Aug 2022 15:25:09 +0200
+
 systemd (247.3-7) bullseye; urgency=medium
 
   * Switch debian-branch to debian/bullseye
diff --git a/debian/patches/Drop-bundled-copy-of-linux-if_arp.h.patch b/debian/patches/Drop-bundled-copy-of-linux-if_arp.h.patch
new file mode 100644
index 0000000..83a6f2c
--- /dev/null
+++ b/debian/patches/Drop-bundled-copy-of-linux-if_arp.h.patch
@@ -0,0 +1,219 @@
+From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Wed, 15 Sep 2021 16:33:05 +0200
+Subject: Drop bundled copy of linux/if_arp.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 8bit
+
+As far as I can see, we use this to get a list of ARPHRD_* defines (used in
+particular for Type= in .link files). If we drop our copy, and build against
+old kernel headers, the user will have a shorter list of types available.  This
+seems OK, and I don't think it's worth carrying our own version of this file
+just to have newest possible entries.
+
+7c5b9952c4f6e2b72f90edbe439982528b7cf223 recently updated this file, but we'd
+have to update it every time the kernel adds new entries. But if we look at
+the failure carefully:
+
+src/basic/arphrd-from-name.gperf:65:16: error: ‘ARPHRD_MCTP’ undeclared (first use in this function); did you mean ‘ARPHRD_FCPP’?
+   65 | MCTP, ARPHRD_MCTP
+      |                ^~
+      |                ARPHRD_FCPP
+
+we see that the list we were generating was from the system headers, so it was
+only as good as the system headers anyway, without the newer entries in our
+bundled copy, if there were any. So let's make things simpler by always using
+system headers.
+
+And if somebody wants to fix things so that we always have the newest list,
+then we should just generate and store the converted list, not the full header.
+
+(cherry picked from commit e7f46ee3ae1cc66a94b293957721d68dc09d7449)
+---
+ src/basic/linux/if_arp.h | 164 -----------------------------------------------
+ src/basic/meson.build    |   1 -
+ 2 files changed, 165 deletions(-)
+ delete mode 100644 src/basic/linux/if_arp.h
+
+diff --git a/src/basic/linux/if_arp.h b/src/basic/linux/if_arp.h
+deleted file mode 100644
+index c3cc5a9..0000000
+--- a/src/basic/linux/if_arp.h
++++ /dev/null
+@@ -1,164 +0,0 @@
+-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+-/*
+- * INET		An implementation of the TCP/IP protocol suite for the LINUX
+- *		operating system.  INET is implemented using the  BSD Socket
+- *		interface as the means of communication with the user level.
+- *
+- *		Global definitions for the ARP (RFC 826) protocol.
+- *
+- * Version:	@(#)if_arp.h	1.0.1	04/16/93
+- *
+- * Authors:	Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
+- *		Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
+- *		Ross Biro
+- *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
+- *		Florian La Roche,
+- *		Jonathan Layes <layes@loran.com>
+- *		Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
+- *
+- *		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.
+- */
+-#ifndef _UAPI_LINUX_IF_ARP_H
+-#define _UAPI_LINUX_IF_ARP_H
+-
+-#include <linux/netdevice.h>
+-
+-/* ARP protocol HARDWARE identifiers. */
+-#define ARPHRD_NETROM	0		/* from KA9Q: NET/ROM pseudo	*/
+-#define ARPHRD_ETHER 	1		/* Ethernet 10Mbps		*/
+-#define	ARPHRD_EETHER	2		/* Experimental Ethernet	*/
+-#define	ARPHRD_AX25	3		/* AX.25 Level 2		*/
+-#define	ARPHRD_PRONET	4		/* PROnet token ring		*/
+-#define	ARPHRD_CHAOS	5		/* Chaosnet			*/
+-#define	ARPHRD_IEEE802	6		/* IEEE 802.2 Ethernet/TR/TB	*/
+-#define	ARPHRD_ARCNET	7		/* ARCnet			*/
+-#define	ARPHRD_APPLETLK	8		/* APPLEtalk			*/
+-#define ARPHRD_DLCI	15		/* Frame Relay DLCI		*/
+-#define ARPHRD_ATM	19		/* ATM 				*/
+-#define ARPHRD_METRICOM	23		/* Metricom STRIP (new IANA id)	*/
+-#define	ARPHRD_IEEE1394	24		/* IEEE 1394 IPv4 - RFC 2734	*/
+-#define ARPHRD_EUI64	27		/* EUI-64                       */
+-#define ARPHRD_INFINIBAND 32		/* InfiniBand			*/
+-
+-/* Dummy types for non ARP hardware */
+-#define ARPHRD_SLIP	256
+-#define ARPHRD_CSLIP	257
+-#define ARPHRD_SLIP6	258
+-#define ARPHRD_CSLIP6	259
+-#define ARPHRD_RSRVD	260		/* Notional KISS type 		*/
+-#define ARPHRD_ADAPT	264
+-#define ARPHRD_ROSE	270
+-#define ARPHRD_X25	271		/* CCITT X.25			*/
+-#define ARPHRD_HWX25	272		/* Boards with X.25 in firmware	*/
+-#define ARPHRD_CAN	280		/* Controller Area Network      */
+-#define ARPHRD_PPP	512
+-#define ARPHRD_CISCO	513		/* Cisco HDLC	 		*/
+-#define ARPHRD_HDLC	ARPHRD_CISCO
+-#define ARPHRD_LAPB	516		/* LAPB				*/
+-#define ARPHRD_DDCMP    517		/* Digital's DDCMP protocol     */
+-#define ARPHRD_RAWHDLC	518		/* Raw HDLC			*/
+-#define ARPHRD_RAWIP    519		/* Raw IP                       */
+-
+-#define ARPHRD_TUNNEL	768		/* IPIP tunnel			*/
+-#define ARPHRD_TUNNEL6	769		/* IP6IP6 tunnel       		*/
+-#define ARPHRD_FRAD	770             /* Frame Relay Access Device    */
+-#define ARPHRD_SKIP	771		/* SKIP vif			*/
+-#define ARPHRD_LOOPBACK	772		/* Loopback device		*/
+-#define ARPHRD_LOCALTLK 773		/* Localtalk device		*/
+-#define ARPHRD_FDDI	774		/* Fiber Distributed Data Interface */
+-#define ARPHRD_BIF      775             /* AP1000 BIF                   */
+-#define ARPHRD_SIT	776		/* sit0 device - IPv6-in-IPv4	*/
+-#define ARPHRD_IPDDP	777		/* IP over DDP tunneller	*/
+-#define ARPHRD_IPGRE	778		/* GRE over IP			*/
+-#define ARPHRD_PIMREG	779		/* PIMSM register interface	*/
+-#define ARPHRD_HIPPI	780		/* High Performance Parallel Interface */
+-#define ARPHRD_ASH	781		/* Nexus 64Mbps Ash		*/
+-#define ARPHRD_ECONET	782		/* Acorn Econet			*/
+-#define ARPHRD_IRDA 	783		/* Linux-IrDA			*/
+-/* ARP works differently on different FC media .. so  */
+-#define ARPHRD_FCPP	784		/* Point to point fibrechannel	*/
+-#define ARPHRD_FCAL	785		/* Fibrechannel arbitrated loop */
+-#define ARPHRD_FCPL	786		/* Fibrechannel public loop	*/
+-#define ARPHRD_FCFABRIC	787		/* Fibrechannel fabric		*/
+-	/* 787->799 reserved for fibrechannel media types */
+-#define ARPHRD_IEEE802_TR 800		/* Magic type ident for TR	*/
+-#define ARPHRD_IEEE80211 801		/* IEEE 802.11			*/
+-#define ARPHRD_IEEE80211_PRISM 802	/* IEEE 802.11 + Prism2 header  */
+-#define ARPHRD_IEEE80211_RADIOTAP 803	/* IEEE 802.11 + radiotap header */
+-#define ARPHRD_IEEE802154	  804
+-#define ARPHRD_IEEE802154_MONITOR 805	/* IEEE 802.15.4 network monitor */
+-
+-#define ARPHRD_PHONET	820		/* PhoNet media type		*/
+-#define ARPHRD_PHONET_PIPE 821		/* PhoNet pipe header		*/
+-#define ARPHRD_CAIF	822		/* CAIF media type		*/
+-#define ARPHRD_IP6GRE	823		/* GRE over IPv6		*/
+-#define ARPHRD_NETLINK	824		/* Netlink header		*/
+-#define ARPHRD_6LOWPAN	825		/* IPv6 over LoWPAN             */
+-#define ARPHRD_VSOCKMON	826		/* Vsock monitor header		*/
+-
+-#define ARPHRD_VOID	  0xFFFF	/* Void type, nothing is known */
+-#define ARPHRD_NONE	  0xFFFE	/* zero header length */
+-
+-/* ARP protocol opcodes. */
+-#define	ARPOP_REQUEST	1		/* ARP request			*/
+-#define	ARPOP_REPLY	2		/* ARP reply			*/
+-#define	ARPOP_RREQUEST	3		/* RARP request			*/
+-#define	ARPOP_RREPLY	4		/* RARP reply			*/
+-#define	ARPOP_InREQUEST	8		/* InARP request		*/
+-#define	ARPOP_InREPLY	9		/* InARP reply			*/
+-#define	ARPOP_NAK	10		/* (ATM)ARP NAK			*/
+-
+-
+-/* ARP ioctl request. */
+-struct arpreq {
+-	struct sockaddr	arp_pa;		/* protocol address		 */
+-	struct sockaddr	arp_ha;		/* hardware address		 */
+-	int		arp_flags;	/* flags			 */
+-	struct sockaddr arp_netmask;    /* netmask (only for proxy arps) */
+-	char		arp_dev[IFNAMSIZ];
+-};
+-
+-struct arpreq_old {
+-	struct sockaddr	arp_pa;		/* protocol address		 */
+-	struct sockaddr	arp_ha;		/* hardware address		 */
+-	int		arp_flags;	/* flags			 */
+-	struct sockaddr	arp_netmask;    /* netmask (only for proxy arps) */
+-};
+-
+-/* ARP Flag values. */
+-#define ATF_COM		0x02		/* completed entry (ha valid)	*/
+-#define	ATF_PERM	0x04		/* permanent entry		*/
+-#define	ATF_PUBL	0x08		/* publish entry		*/
+-#define	ATF_USETRAILERS	0x10		/* has requested trailers	*/
+-#define ATF_NETMASK     0x20            /* want to use a netmask (only
+-					   for proxy entries) */
+-#define ATF_DONTPUB	0x40		/* don't answer this addresses	*/
+-
+-/*
+- *	This structure defines an ethernet arp header.
+- */
+-
+-struct arphdr {
+-	__be16		ar_hrd;		/* format of hardware address	*/
+-	__be16		ar_pro;		/* format of protocol address	*/
+-	unsigned char	ar_hln;		/* length of hardware address	*/
+-	unsigned char	ar_pln;		/* length of protocol address	*/
+-	__be16		ar_op;		/* ARP opcode (command)		*/
+-
+-#if 0
+-	 /*
+-	  *	 Ethernet looks like this : This bit is variable sized however...
+-	  */
+-	unsigned char		ar_sha[ETH_ALEN];	/* sender hardware address	*/
+-	unsigned char		ar_sip[4];		/* sender IP address		*/
+-	unsigned char		ar_tha[ETH_ALEN];	/* target hardware address	*/
+-	unsigned char		ar_tip[4];		/* target IP address		*/
+-#endif
+-
+-};
+-
+-
+-#endif /* _UAPI_LINUX_IF_ARP_H */
+diff --git a/src/basic/meson.build b/src/basic/meson.build
+index 1183ea8..2c13cf4 100644
+--- a/src/basic/meson.build
++++ b/src/basic/meson.build
+@@ -98,7 +98,6 @@ basic_sources = files('''
+         linux/hdlc/ioctl.h
+         linux/if.h
+         linux/if_addr.h
+-        linux/if_arp.h
+         linux/if_bonding.h
+         linux/if_bridge.h
+         linux/if_ether.h
diff --git a/debian/patches/series b/debian/patches/series
index e41de0e..d0ebfa1 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -24,6 +24,10 @@ machine-basic-factor-out-helper-function-to-add-airlocked.patch
 machine-adjust-error-message-to-use-normalized-instead-of.patch
 shared-mount-util-use-namespace_fork-utils.patch
 machine-enter-target-PID-namespace-when-adding-a-live-mou.patch
+Drop-bundled-copy-of-linux-if_arp.h.patch
+virt-Support-detection-for-ARM64-Hyper-V-guests.patch
+virt-Fix-the-detection-for-Hyper-V-VMs.patch
+virt-detect-OpenStack-Nova-instance.patch
 debian/Use-Debian-specific-config-files.patch
 debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch
 debian/Make-run-lock-tmpfs-an-API-fs.patch
diff --git a/debian/patches/virt-Fix-the-detection-for-Hyper-V-VMs.patch b/debian/patches/virt-Fix-the-detection-for-Hyper-V-VMs.patch
new file mode 100644
index 0000000..9757987
--- /dev/null
+++ b/debian/patches/virt-Fix-the-detection-for-Hyper-V-VMs.patch
@@ -0,0 +1,38 @@
+From: Boqun Feng <boqun.feng@gmail.com>
+Date: Tue, 23 Nov 2021 15:09:26 +0800
+Subject: virt: Fix the detection for Hyper-V VMs
+
+Use product_version instead of product_name in DMI table and the string
+"Hyper-V" to avoid misdetection.
+
+Fixes: #21468
+
+Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
+(cherry picked from commit 76eec0649936d9ae2f9087769f463feaf0cf5cb4)
+---
+ src/basic/virt.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/basic/virt.c b/src/basic/virt.c
+index 0d45ee6..54befd9 100644
+--- a/src/basic/virt.c
++++ b/src/basic/virt.c
+@@ -140,7 +140,8 @@ static int detect_vm_dmi(void) {
+                 "/sys/class/dmi/id/product_name", /* Test this before sys_vendor to detect KVM over QEMU */
+                 "/sys/class/dmi/id/sys_vendor",
+                 "/sys/class/dmi/id/board_vendor",
+-                "/sys/class/dmi/id/bios_vendor"
++                "/sys/class/dmi/id/bios_vendor",
++                "/sys/class/dmi/id/product_version" /* For Hyper-V VMs test */
+         };
+ 
+         static const struct {
+@@ -158,7 +159,7 @@ static int detect_vm_dmi(void) {
+                 { "Parallels",           VIRTUALIZATION_PARALLELS },
+                 /* https://wiki.freebsd.org/bhyve */
+                 { "BHYVE",               VIRTUALIZATION_BHYVE     },
+-                { "Microsoft",           VIRTUALIZATION_MICROSOFT },
++                { "Hyper-V",             VIRTUALIZATION_MICROSOFT },
+         };
+         unsigned i;
+         int r;
diff --git a/debian/patches/virt-Support-detection-for-ARM64-Hyper-V-guests.patch b/debian/patches/virt-Support-detection-for-ARM64-Hyper-V-guests.patch
new file mode 100644
index 0000000..373a77f
--- /dev/null
+++ b/debian/patches/virt-Support-detection-for-ARM64-Hyper-V-guests.patch
@@ -0,0 +1,28 @@
+From: Boqun Feng <boqun.feng@gmail.com>
+Date: Wed, 13 Oct 2021 11:32:09 +0800
+Subject: virt: Support detection for ARM64 Hyper-V guests
+
+The detection of Microsoft Hyper-V VMs is done by cpuid currently,
+however there is no cpuid on ARM64. And since ARM64 is now a supported
+architecture for Microsoft Hyper-V guests[1], then use DMI tables to
+detect a Hyper-V guest, which is more generic and works for ARM64.
+
+[1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7aff79e297ee1aa0126924921fd87a4ae59d2467
+
+(cherry picked from commit 506bbc8569014253ea8614b680ccbc4fc2513a87)
+---
+ src/basic/virt.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/basic/virt.c b/src/basic/virt.c
+index 7d78a40..0d45ee6 100644
+--- a/src/basic/virt.c
++++ b/src/basic/virt.c
+@@ -158,6 +158,7 @@ static int detect_vm_dmi(void) {
+                 { "Parallels",           VIRTUALIZATION_PARALLELS },
+                 /* https://wiki.freebsd.org/bhyve */
+                 { "BHYVE",               VIRTUALIZATION_BHYVE     },
++                { "Microsoft",           VIRTUALIZATION_MICROSOFT },
+         };
+         unsigned i;
+         int r;
diff --git a/debian/patches/virt-detect-OpenStack-Nova-instance.patch b/debian/patches/virt-detect-OpenStack-Nova-instance.patch
new file mode 100644
index 0000000..87686b2
--- /dev/null
+++ b/debian/patches/virt-detect-OpenStack-Nova-instance.patch
@@ -0,0 +1,21 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Sun, 7 Aug 2022 15:21:12 +0200
+Subject: virt: detect OpenStack Nova instance
+
+(cherry picked from commit 01d9fbccddd694bc584aed24eaa0543f831dc929)
+---
+ src/basic/virt.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/basic/virt.c b/src/basic/virt.c
+index 54befd9..78ee1b8 100644
+--- a/src/basic/virt.c
++++ b/src/basic/virt.c
+@@ -149,6 +149,7 @@ static int detect_vm_dmi(void) {
+                 int id;
+         } dmi_vendor_table[] = {
+                 { "KVM",                 VIRTUALIZATION_KVM       },
++                { "OpenStack",           VIRTUALIZATION_KVM       }, /* Detect OpenStack instance as KVM in non x86 architecture */
+                 { "QEMU",                VIRTUALIZATION_QEMU      },
+                 { "VMware",              VIRTUALIZATION_VMWARE    }, /* https://kb.vmware.com/s/article/1009458 */
+                 { "VMW",                 VIRTUALIZATION_VMWARE    },

--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 11.5

Hi,

The updates referred to in each of these bugs were included in today's
11.5 point release.

Regards,

Adam

--- End Message ---

Reply to: