]> git.proxmox.com Git - systemd.git/commitdiff
Drop bundled copy of linux/if_arp.h
authorMichael Biebl <biebl@debian.org>
Sun, 7 Aug 2022 13:15:10 +0000 (15:15 +0200)
committerMichael Biebl <biebl@debian.org>
Sun, 7 Aug 2022 13:15:10 +0000 (15:15 +0200)
Fixes build failures with newer kernel headers.

debian/patches/Drop-bundled-copy-of-linux-if_arp.h.patch [new file with mode: 0644]
debian/patches/series

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 (file)
index 0000000..83a6f2c
--- /dev/null
@@ -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
index e41de0e77003181604238d8c7561ad9feffa1b14..1d6b5ad89d8ce7666d8a772a176e37d7fce12e8b 100644 (file)
@@ -24,6 +24,7 @@ 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
 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