debian: No longer build for i386
authorHans van Kranenburg <hans@knorrie.org>
Mon, 13 Dec 2021 17:59:31 +0000 (18:59 +0100)
committerHans van Kranenburg <hans@knorrie.org>
Fri, 17 Dec 2021 10:53:04 +0000 (11:53 +0100)
It was already not possible to use x86_32 hardware because the i386
packages already shipped a 64-bit hypervisor and PV shim. Running 32-bit
utils with a 64-bit hypervisor requires using a compatibility layer that
is fragile and becomes harder to maintain and test upstream.

The libc6-xen package is not being built any more, and 32-bit PV support
also has been removed from the Linux kernel now.

This change ends the 'grace period' in which users should have moved to
using a fully 64-bit dom0.

As a result the only reverse dependency for the libc6-xen package in
Debian is also removed, so this also (Closes: #992909) in the process.

Signed-off-by: Hans van Kranenburg <hans@knorrie.org>
debian/control
debian/rules
debian/salsa-ci.yml
debian/xen-utils-V.install.vsn-in

index aec38219855f8bdc705f3c436153b1eb76e6c485..33af344d92df633ba2d3812b7376b7014c3a8422 100644 (file)
@@ -15,11 +15,11 @@ Build-Depends:
    python3-dev:any,
    libpython3-dev,
    dh-python,
-   bcc [i386 amd64],
-   gcc-multilib [i386 amd64],
+   bcc [amd64],
+   gcc-multilib [amd64],
    e2fslibs-dev,
    iasl,
-   seabios (>= 1.7.4-2~) [i386 amd64],
+   seabios (>= 1.7.4-2~) [amd64],
    libaio-dev,
    libfdt-dev [armhf arm64],
    libglib2.0-dev,
@@ -39,7 +39,7 @@ Vcs-Browser: https://salsa.debian.org/xen-team/debian-xen
 Vcs-Git: https://salsa.debian.org/xen-team/debian-xen.git
 
 Package: xenstore-utils
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Section: admin
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Replaces: xen-utils-common (<= 4.11.1~pre+1.733450b39b-1~)
@@ -60,7 +60,7 @@ Description: Xenstore command line utilities for Xen
 
 Package: xen-utils-common
 Section: admin
-Architecture: amd64 i386 armhf arm64
+Architecture: amd64 armhf arm64
 Depends: lsb-base, udev, xenstore-utils,
     ${shlibs:Depends}, ${python3:Depends}, ${misc:Depends}
 Suggests: xen-doc
@@ -86,7 +86,7 @@ Description: Xen Hypervisor - common files
 
 Package: xen-doc
 Section: doc
-Architecture: amd64 i386 armhf arm64
+Architecture: amd64 armhf arm64
 Depends: ${misc:Depends}
 Description: XEN documentation
  Documentation for the Xen hypervisor and surrounding software,
@@ -99,21 +99,21 @@ Description: XEN documentation
 
 Package: xen-utils-4.16
 Section: admin
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Provides: xen-utils
 Depends: ${shlibs:Depends}, ${misc:Depends}, python3, xen-utils-common (>= ${source:Version})
-Recommends: bridge-utils, libc6-xen [i386], xen-hypervisor-4.16, qemu-system-x86, grub-xen-host [i386 amd64]
-Suggests: qemu-utils [i386 amd64], seabios [i386 amd64], ovmf
+Recommends: bridge-utils, xen-hypervisor-4.16, qemu-system-x86, grub-xen-host [amd64]
+Suggests: qemu-utils [amd64], seabios [amd64], ovmf
 Description: XEN administrative tools
  The userspace tools to manage a system virtualized through the XEN virtual
  machine monitor.
  .
- qemu-utils and seabios are neded for "Xen HVM" (amd64 and i386)
+ qemu-utils and seabios are neded for "Xen HVM" (amd64)
 Built-Using: ${misc:Built-Using}
 
 Package: xen-hypervisor-4.16-amd64
 Section: kernel
-Architecture: amd64 i386
+Architecture: amd64
 Provides: xen-hypervisor, xen-hypervisor-4.16, xen-hypervisor-amd64
 Depends: ${misc:Depends}
 Recommends: xen-utils-4.16, xen-hypervisor-common
@@ -128,7 +128,7 @@ Description: Xen Hypervisor on AMD64
 
 Package: xen-system-amd64
 Section: admin
-Architecture: amd64 i386
+Architecture: amd64
 Provides: xen-system
 Depends: xen-hypervisor-4.16-amd64, xen-hypervisor-common, xen-utils-4.16, ${misc:Depends}
 Description: Xen System on AMD64 (metapackage)
@@ -185,7 +185,7 @@ Description: Xen System on ARMHF (metapackage)
 
 Package: libxen-dev
 Section: libdevel
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends},
         libxenmisc4.16 (= ${binary:Version}),
         libxencall1 (= ${binary:Version}),
@@ -213,7 +213,7 @@ Description: Public headers and libs for Xen
 
 Package: libxenmisc4.16
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - miscellaneous, versioned ABI
  Shared libraries for Xen utilities.
@@ -224,7 +224,7 @@ Multi-Arch: same
 
 Package: libxencall1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime library - libxencall
  Shared library for Xen utilities.
@@ -232,7 +232,7 @@ Multi-Arch: same
 
 Package: libxendevicemodel1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxendevicemodel
  Shared library for Xen utilities.
@@ -240,7 +240,7 @@ Multi-Arch: same
 
 Package: libxenevtchn1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxenevtchn
  Shared library for Xen utilities.
@@ -248,7 +248,7 @@ Multi-Arch: same
 
 Package: libxenforeignmemory1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxenforeignmemory
  Shared library for Xen utilities.
@@ -256,7 +256,7 @@ Multi-Arch: same
 
 Package: libxengnttab1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxengnttab
  Shared library for Xen utilities.
@@ -264,7 +264,7 @@ Multi-Arch: same
 
 Package: libxenstore4
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxenstore
  Shared library for Xen utilities.
@@ -272,7 +272,7 @@ Multi-Arch: same
 
 Package: libxentoolcore1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxentoolcore
  Shared library for Xen utilities.
@@ -280,7 +280,7 @@ Multi-Arch: same
 
 Package: libxentoollog1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime libraries - libxentoollog
  Shared library for Xen utilities.
@@ -288,7 +288,7 @@ Multi-Arch: same
 
 Package: libxenhypfs1
 Section: libs
-Architecture: amd64 arm64 armhf i386
+Architecture: amd64 arm64 armhf
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: Xen runtime library - libxenhypfs
  Shared library for Xen utilities.
index 33759effa27bb7a82fb37e6d578d01f56e9171b9..9e2626b582d7b4a5daca21891058dea56c4d05d3 100755 (executable)
@@ -30,9 +30,7 @@ dbmo= DEB_BUILD_MAINT_OPTIONS="hardening=+all reproducible=+fixfilepath"
 #
 # We need to explicitly specify the architecture because the Xen
 # upstream build system likes to use `uname' which can produce wrong
-# answers it other-bitness chroots, and because we need to build a
-# 64-bit hypervisor even on i386 (since there is no 32-bit hypervisor
-# anymore).
+# answers in other-bitness chroots.
 
 # Also there is terminological confusion.  The DEB_* variables follow
 # GNU GCC terminology:
@@ -47,12 +45,10 @@ include /usr/share/dpkg/architecture.mk
 # Debian nor GNU names.
 
 flavour_amd64 = amd64
-flavour_i386  = amd64
 flavour_armhf = armhf
 flavour_arm64 = arm64
 
 xen_arch_amd64 = x86_64
-xen_arch_i386  = x86_32
 xen_arch_armhf = arm32
 xen_arch_arm64 = arm64
 
@@ -220,16 +216,14 @@ override_dh_auto_configure:
 
 # tools/firmware/xen-dir is the `shim' used for booting PV guests
 # in an HVM container, for security (particularly, for meltdown/spectre
-# mitigation).  It's actually a hypervisor.  On i386 it is not built
-# by `make tools' because run that with XEN_COMPILE_ARCH=x86_32 which
-# is no longer a supported hypervisor architecture.  And we want to
-# build it with $(make_args_xen) not $(make_args_tools).  So do it
-# separately.
+# mitigation).  It's actually a hypervisor. It's only built for amd64.
+# Since we want to build it with $(make_args_xen) not $(make_args_tools),
+# do it separately.
 override_dh_auto_build:
        $(MAKE) $(make_args_xen) xen
        $(MAKE) $(make_args_tools) tools docs CONFIG_PV_SHIM=n
        case $(flavour) in \
-       amd64|i386) \
+       amd64) \
                $(MAKE) $(make_args_xen) -C tools/firmware/xen-dir ;; \
        esac
        touch debian/xen-tools-built.stamp
@@ -244,8 +238,7 @@ override_dh_auto_install: $(TEMPLATED_FILES)
                install-{tools,docs} CONFIG_PV_SHIM=n
        :
        @# shim install target needs to be run separately because we
-       @# need to pass it the make_args_xen settings, in particular
-       @# on i386 bwe need to pass x86_64 here to actually build it.
+       @# need to pass it the make_args_xen settings.
        @# Luckily this target, unlike the build, is a noop on
        @# shimless arches, so it does not need to be conditional.
        $(MAKE) $(make_args_xen) DESTDIR=$t $(make_args_xen) \
index 95e9d0d98bc024909ac63a279987010516d4a170..85089abfd35e8769d7e0707533af293a1297978f 100644 (file)
@@ -26,3 +26,5 @@ variables:
 
   SALSA_CI_REPROTEST_ENABLE_DIFFOSCOPE: 1
 
+  # We do not provide packages for i386
+  SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 1
index d8a552cb973fc6fee745ba6ece6684c214c92181..da04b59d4276cd82af35e466888d1e813067806e 100644 (file)
@@ -1,7 +1,7 @@
 usr/lib/xen-@version@/bin
 usr/lib/xen-@version@/lib/python
 
-? flavour = amd64 | i386
+? flavour = amd64
 usr/lib/xen-@version@/boot
 usr/lib/debug/usr/lib/xen-*/boot/* usr/lib/debug/xen-syms-@version@-shim
 # ^ Yes, the upstream build system really does install the shim symbols