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

Bug#927816: unblock: shim-signed/1.30



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package shim-signed

We've just got new signatures back from Microsoft to match our shim
binaries for amd64, i386 and arm64. I've fixed up the packaging a lot
to accommodate the new arches (previously we had amd64 only).

We've made a lot of progress with shim, and we're nearing the end of
the process for Secure Boot in Buster. I'm asking for this unblock
today to cover most of what we need, with potentially a further
unblock for a new set of signed binaries with some shim bugfixes to
come. That'll depend on how long new signatures take to come. (Yay!).

The main set of changes here are in version 1.29.

diff -Nru shim-signed-1.28+nmu1/Makefile shim-signed-1.30/Makefile
--- shim-signed-1.28+nmu1/Makefile	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/Makefile	2019-04-19 15:18:30.000000000 +0100
@@ -3,12 +3,12 @@
 check:
 	mkdir -p build
 	# Verifying that the image is signed with the correct key.
-	sbverify --cert MicCorUEFCA2011_2011-06-27.crt shimx64.efi.signed
+	sbverify --cert MicCorUEFCA2011_2011-06-27.crt shim$(EFI_ARCH).efi.signed
 	# Verifying that we have the correct binary.
-	sbattach --detach build/detached-sig shimx64.efi.signed 
-	cp /usr/lib/shim/shimx64.efi build/shimx64.efi.signed
-	sbattach --attach build/detached-sig build/shimx64.efi.signed
-	cmp shimx64.efi.signed build/shimx64.efi.signed
+	sbattach --detach build/detached-sig shim$(EFI_ARCH).efi.signed 
+	cp /usr/lib/shim/shim$(EFI_ARCH).efi build/shim$(EFI_ARCH).efi.signed
+	sbattach --attach build/detached-sig build/shim$(EFI_ARCH).efi.signed
+	cmp shim$(EFI_ARCH).efi.signed build/shim$(EFI_ARCH).efi.signed
 
 clean:
 	rm -rf build
diff -Nru shim-signed-1.28+nmu1/debian/changelog shim-signed-1.30/debian/changelog
--- shim-signed-1.28+nmu1/debian/changelog	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/debian/changelog	2019-04-23 00:01:10.000000000 +0100
@@ -1,3 +1,62 @@
+shim-signed (1.30) unstable; urgency=medium
+
+  * Force the built-using version to be 15+1533136590.3beb971-6. That
+    *does* match the source we've used, we're only using -5 due to
+    toolchain changes elsewhere. Ick :-(
+
+ -- Steve McIntyre <93sam@debian.org>  Tue, 23 Apr 2019 00:01:10 +0100
+
+shim-signed (1.29) unstable; urgency=medium
+
+  * New signed binaries available from MS for amd64, arm64 and i386
+  * Change maintainer to be the EFI team
+  * Update the build-depends
+    + Specifically depend on sbsigntool (>= 0.9.2-2) to fix a bug in the
+      PE/COFF checksum that otherwise breaks the build
+  * Tweak the binary package setup a lot
+    + We're now building for 3 arches
+    + Depend on the right grub-efi-$arch-bin package for each arch
+    + Depend on the right shim-helpers-$arch-signed package for each
+      arch
+    + Remove the old Replaces: and Breaks:, as we don't clash with files
+      from the shim binary package any more.
+  * Stop copying helper binaries into our package now
+    + We just depend on shim-helpers-ARCH-signed now
+  * Tweak build, don't assume amd64
+  * Add lintian overrides for things we can't really change:
+    + We're including pre-built binaries, as that's where our signatures
+      are coming from. We have the matching source in the shim source
+      package.
+  * Update Standards-Version to 4.3.0 (no changes needed)
+
+ -- Steve McIntyre <93sam@debian.org>  Mon, 22 Apr 2019 22:57:55 +0100
+
+shim-signed (1.28+nmu3) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * (Still) explicitly uploading from a chroot with older binaries
+    installed for shim and sbsigntool, and update Build-Depends to
+    point to those speficic versions. This package will *not* function
+    with other versions installed.
+  * Add Breaks: shim (<= 0.9+1474479173.6c180c6-1), Closes: #924100
+  * +nmu2 fixed the installability problem caused by waiting for
+    Microsoft's signature on the new shim packages. Closes: #922179
+
+ -- Steve McIntyre <93sam@debian.org>  Sat, 09 Mar 2019 23:52:41 +0000
+
+shim-signed (1.28+nmu2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Copy the helper binaries from the shim binary so that we no longer
+    need to depend on it. See #922179 for more details. Add a Replaces:
+    shim and to allow us to over-write binaries there.
+  * Explicitly uploading in a chroot with older binaries installed for
+    shim and sbsigntool, and update Build-Depends to point to those
+    speficic versions. This package will *not* function with other
+    versions installed.
+
+ -- Steve McIntyre <93sam@debian.org>  Sun, 03 Mar 2019 22:33:41 +0000
+
 shim-signed (1.28+nmu1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru shim-signed-1.28+nmu1/debian/control shim-signed-1.30/debian/control
--- shim-signed-1.28+nmu1/debian/control	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/debian/control	2019-04-22 23:59:15.000000000 +0100
@@ -1,15 +1,34 @@
 Source: shim-signed
 Section: utils
 Priority: optional
-Maintainer: Steve Langasek <vorlon@debian.org>
-Build-Depends: debhelper (>= 9), shim, sbsigntool (>= 0.6-0ubuntu4), po-debconf
-Standards-Version: 3.9.4
+Maintainer: Debian EFI Team <debian-efi@lists.debian.org>
+Uploaders: Steve McIntyre <93sam@debian.org>, Steve Langasek <vorlon@debian.org>
+Build-Depends: debhelper (>= 9),
+# Need shim-unsigned version 15+1533136590.3beb971-5 so we can check the
+# signature on the right version of shim. Version -6 saw arm64 toolchain
+# changes that changed the binary. Ugh. :-(
+ shim-unsigned (= 15+1533136590.3beb971-5),
+# sbsigntool before 0.9.2-2 had a horrid bug with checksum calculation
+# which broke our build
+ sbsigntool (>= 0.9.2-2),
+ po-debconf
+Standards-Version: 4.3.0
+Vcs-Browser: https://salsa.debian.org/efi-team/shim-signed
+Vcs-Git: https://salsa.debian.org/efi-team/shim-signed.git
 
 Package: shim-signed
-Architecture: amd64
-Depends: ${misc:Depends}, shim (= ${shim:Version}), grub-efi-amd64-bin, grub2-common (>= 2.02~beta2-36ubuntu12), mokutil
+Architecture: amd64 i386 arm64
+Depends: ${misc:Depends},
+ grub-efi-amd64-bin [amd64],
+ shim-helpers-amd64-signed (>= 1+15+1533136590.3beb971+5) [amd64],
+ grub-efi-ia32-bin [i386],
+ shim-helpers-i386-signed (>= 1+15+1533136590.3beb971+5) [i386],
+ grub-efi-arm64-bin [arm64],
+ shim-helpers-arm64-signed (>= 1+15+1533136590.3beb971+5) [arm64],
+ grub2-common (>= 2.02+dfsg1-16),
+ mokutil
 Recommends: secureboot-db
-Built-Using: shim (= ${shim:Version})
+Built-Using: shim (= 15+1533136590.3beb971-6)
 Description: Secure Boot chain-loading bootloader (Microsoft-signed binary)
  This package provides a minimalist boot loader which allows verifying
  signatures of other UEFI binaries against either the Secure Boot DB/DBX or
diff -Nru shim-signed-1.28+nmu1/debian/copyright shim-signed-1.30/debian/copyright
--- shim-signed-1.28+nmu1/debian/copyright	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/debian/copyright	2019-04-19 15:09:58.000000000 +0100
@@ -1,7 +1,7 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: shim
-Upstream-Contact: Matthew Garrett <mjg@redhat.com>
-Source: https://github.com/mjg59/shim.git
+Upstream-Contact: Peter Jones <pjones@redhat.com>
+Source: https://github.com/rhboot/shim
 
 Files: *
 Copyright: 2012 Red Hat, Inc
diff -Nru shim-signed-1.28+nmu1/debian/rules shim-signed-1.30/debian/rules
--- shim-signed-1.28+nmu1/debian/rules	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/debian/rules	2019-04-19 15:28:53.000000000 +0100
@@ -1,7 +1,19 @@
 #! /usr/bin/make -f
 
 VERSION := $(shell LC_ALL=C dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2)
-SHIM_VERSION := $(shell dpkg-query -f '$${Version}\n' -W shim)
+SHIM_VERSION := $(shell dpkg-query -f '$${Version}\n' -W shim-unsigned)
+
+include /usr/share/dpkg/architecture.mk
+
+ifeq ($(DEB_HOST_ARCH),amd64)
+export EFI_ARCH := x64
+endif
+ifeq ($(DEB_HOST_ARCH),arm64)
+export EFI_ARCH := aa64
+endif
+ifeq ($(DEB_HOST_ARCH),i386)
+export EFI_ARCH := ia32
+endif
 
 %:
 	dh $@
diff -Nru shim-signed-1.28+nmu1/debian/shim-signed.install shim-signed-1.30/debian/shim-signed.install
--- shim-signed-1.28+nmu1/debian/shim-signed.install	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/debian/shim-signed.install	2019-04-22 18:08:11.000000000 +0100
@@ -1,3 +1,3 @@
-shimx64.efi.signed /usr/lib/shim
+build/shim*.efi.signed /usr/lib/shim
 debian/source_shim-signed.py /usr/share/apport/package-hooks/
 update-secureboot-policy /usr/sbin/
diff -Nru shim-signed-1.28+nmu1/debian/shim-signed.postinst shim-signed-1.30/debian/shim-signed.postinst
--- shim-signed-1.28+nmu1/debian/shim-signed.postinst	2018-11-04 07:09:26.000000000 +0000
+++ shim-signed-1.30/debian/shim-signed.postinst	2019-04-22 17:52:51.000000000 +0100
@@ -4,6 +4,20 @@
 # Must load the confmodule for our template to be installed correctly.
 . /usr/share/debconf/confmodule
 
+ARCH=$(dpkg --print-architecture)
+case ${ARCH} in
+    amd64)
+	GRUB_EFI_TARGET="x86_64-efi";;
+    i386)
+	GRUB_EFI_TARGET="i386-efi";;
+    arm64)
+	GRUB_EFI_TARGET="arm64-efi";;
+    *)
+	echo "Unsupported dpkg architecture ${ARCH} in $0. ABORT"
+	exit 1
+	;;
+esac
+
 config_item ()
 {
     if [ -f /etc/default/grub ]; then
@@ -30,7 +44,7 @@
 	if [ "$bootloader_id" ] && [ -d "/boot/efi/EFI/$bootloader_id" ] \
 	   && which grub-install >/dev/null 2>&1
 	then
-	    grub-install --target=x86_64-efi
+	    grub-install --target=${GRUB_EFI_TARGET}
             if dpkg --compare-versions "$2" lt-nl "1.22~"; then
                 rm -f /boot/efi/EFI/ubuntu/MokManager.efi
             fi
diff -Nru shim-signed-1.28+nmu1/debian/source/lintian-overrides shim-signed-1.30/debian/source/lintian-overrides
--- shim-signed-1.28+nmu1/debian/source/lintian-overrides	1970-01-01 01:00:00.000000000 +0100
+++ shim-signed-1.30/debian/source/lintian-overrides	2019-04-22 22:53:19.000000000 +0100
@@ -0,0 +1,3 @@
+shim-signed: source-contains-prebuilt-windows-binary shimaa64.efi.signed
+shim-signed: source-contains-prebuilt-windows-binary shimia32.efi.signed
+shim-signed: source-contains-prebuilt-windows-binary shimx64.efi.signed
Binary files /tmp/gyjEQeEol0/shim-signed-1.28+nmu1/shimaa64.efi.signed and /tmp/Z3ESxao_Zf/shim-signed-1.30/shimaa64.efi.signed differ
Binary files /tmp/gyjEQeEol0/shim-signed-1.28+nmu1/shimia32.efi.signed and /tmp/Z3ESxao_Zf/shim-signed-1.30/shimia32.efi.signed differ
Binary files /tmp/gyjEQeEol0/shim-signed-1.28+nmu1/shimx64.efi.signed and /tmp/Z3ESxao_Zf/shim-signed-1.30/shimx64.efi.signed differ


unblock shim-signed/1.30

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-2-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled


Reply to: