Bug#693400: please allow multiarch for grub-ieee1275-bin

Colin Watson cjwatson at debian.org
Fri Nov 16 23:47:34 UTC 2012


On Fri, Nov 16, 2012 at 04:05:43PM -0500, Daniel Kahn Gillmor wrote:
> On 11/16/2012 01:39 PM, Colin Watson wrote:
> > On Thu, Nov 15, 2012 at 11:06:35PM -0500, Daniel Kahn Gillmor wrote:
> >> I think all that's needed to make grub-ieee1275-bin multiarch is to move
> >> the Depends: powerpc-ibm-utils, powerpc-utils, bc to Recommends: for
> >> non-powerpc architectures.  Do we actually need bc in there on any
> >> architecture, since powerpc-ibm-utils itself depends on bc?
> > 
> > Isn't the right answer to make these packages Multi-Arch: foreign
> > instead?
> 
> That won't work for bc (because /usr/bin/bc will collide),

No - Multi-Arch: foreign means that you get to use the i386 binary to
satisfy dependencies of a powerpc binary, and doesn't imply
coinstallation of the same package on multiple architectures.  You're
thinking of Multi-Arch: same.

Regardless of the outcome of the rest of this bug, bc (like most
compiled utilities that behave the same way across architectures) could
be Multi-Arch: foreign quite safely and potentially usefully.  In fact,
I see that this has already been filed as #681784.

> and it doesn't seem particularly reasonable make powerpc-utils or
> powerpc-ibm-utils because the binaries they provide actually won't run
> on a non-powerpc architecture.

That's fairer.

> Do you see a problem with the approach i proposed?

It would probably work, but I have a slightly better idea.  The point of
the *-bin packages is to provide the binary objects so that you can
construct images without having them take over your boot sector; they do
not need to include the dependencies required for grub-install to work.
I therefore propose:

=== modified file 'debian/changelog'
--- debian/changelog	2012-11-16 23:31:47 +0000
+++ debian/changelog	2012-11-16 23:39:26 +0000
@@ -5,6 +5,8 @@ grub2 (2.00-8) UNRELEASED; urgency=low
     - Set a file encoding, per PEP 0263.
   * Drop grub-ieee1275-bin's dependency on bc in favour of powerpc-ibm-utils
     (>= 1.2.12-1) (cf. #625728).
+  * Move powerpc-ibm-utils and powerpc-utils dependencies from
+    grub-ieee1275-bin to grub-ieee1275 (closes: #693400).
 
  -- Colin Watson <cjwatson at debian.org>  Thu, 27 Sep 2012 13:25:46 +0100
 

=== modified file 'debian/control'
--- debian/control	2012-11-16 23:31:47 +0000
+++ debian/control	2012-11-16 23:36:25 +0000
@@ -379,8 +379,7 @@ Description: GRand Unified Bootloader, v
 
 Package: grub-ieee1275-bin
 Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc
-Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}),
- powerpc-ibm-utils (>= 1.2.12-1) [any-powerpc any-ppc64], powerpc-utils [any-powerpc any-ppc64]
+Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version})
 Replaces: grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-ieee1275 (<< 1.99-1)
 Suggests: genisoimage [any-powerpc any-ppc64]
 Multi-Arch: foreign
@@ -410,7 +409,7 @@ Description: GRand Unified Bootloader, v
 
 Package: grub-ieee1275
 Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc
-Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-ieee1275-bin (= ${binary:Version}), ucf
+Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-ieee1275-bin (= ${binary:Version}), ucf, powerpc-ibm-utils (>= 1.2.12-1) [any-powerpc any-ppc64], powerpc-utils [any-powerpc any-ppc64]
 Replaces: grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-pc
 Conflicts: grub (<< 0.97-54), grub-legacy, grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-pc
 Multi-Arch: foreign

What do you think?  This doesn't include the grub-install changes you
suggest, but TBH I kind of question whether those are worth it; needing
to use --no-nvram doesn't seem like a desperately big deal.  If we do
feel we need to change grub-install, I think I'd want to do that
upstream.

Even with this change, though, I can't safely make grub-ieee1275-bin
Multi-Arch: same.  i386 and powerpc may not collide, but i386 and amd64
do, as would powerpc and ppc64 if we had a full ppc64 port, and
multiarch has no provision for distinguishing those cases.
i386/ieee1275 systems are very rare, and I'm not sure it's worth any
kind of non-trivial contortions to support coinstalling the i386 and
powerpc binaries here.

> Can you help me see why grub-ieee1275-bin:powerpc Depends: directly on
> bc in the first place?

That dependency predates #625728 being fixed.  I've dropped the direct
dependency on bc now in favour of a versioned dependency on
powerpc-ibm-utils.

Cheers,

-- 
Colin Watson                                       [cjwatson at debian.org]



More information about the Pkg-grub-devel mailing list