On Sat, 2012-07-14 at 12:24 -0600, Ian Campbell wrote: > On Sat, 2012-07-14 at 20:03 +0200, Bastian Blank wrote: > > On Sat, Jul 14, 2012 at 11:39:01AM -0600, Ian Campbell wrote: > > > On Thu, 2012-07-12 at 12:37 -0600, Ian Campbell wrote: > > > > One possible solution would be to turn those virtual packages into real > > > > ones, at which point I expect the versioning would cause the expected > > > > upgrade. > > > Perhaps inevitably this wasn't quite sufficient. The problem is that > > > even if xen-hypervisor-amd64 becomes a real package on upgrade the > > > dependency is already satisfied by xen-hypervisor-4.0-amd64 so apt > > > doesn't do the upgrade. > > > > This can be fixed by adding a version, like "(>> 0)" > > I'll try this. I'd worry about it causing the 4.0 version to be > uninstalled too which would not be preferable, but we'll see.
This worked properly and didn't mess with the 4.0 version either, thanks for the tip -- I had actually read the bit of policy about versioned Depends ignoring Provides this morning but >>0 didn't occur to me. New patches attached. Ian
>From 8b8c3c566e8acfce9c9c9600c3efaec0d76a96be Mon Sep 17 00:00:00 2001 From: Ian Campbell <i...@hellion.org.uk> Date: Sat, 14 Jul 2012 18:25:00 +0100 Subject: [PATCH] Make xen-linux-system depend on a non virtual xen-hypervisor-flavour package --- linux/debian/bin/gencontrol.py | 2 +- linux/debian/changelog | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/linux/debian/bin/gencontrol.py b/linux/debian/bin/gencontrol.py index 5fd5cda..8eafe82 100755 --- a/linux/debian/bin/gencontrol.py +++ b/linux/debian/bin/gencontrol.py @@ -266,7 +266,7 @@ class Gencontrol(Base): p = self.process_packages(self.templates['control.xen-linux-system'], vars) l = PackageRelationGroup() for xen_flavour in config_entry_xen['flavours']: - l.append("xen-hypervisor-%s" % xen_flavour) + l.append("xen-hypervisor-%s (>>0)" % xen_flavour) p[0]['Depends'].append(l) packages_dummy.extend(p) diff --git a/linux/debian/changelog b/linux/debian/changelog index 575c028..4b29249 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -34,6 +34,10 @@ linux (3.2.23-1) UNRELEASED; urgency=low * udf: Improve table length check to avoid possible overflow * CIFS: Respect negotiated MaxMpxCount (deferred from 3.2.14) + [ Ian Campbell ] + * xen-linux-system: Depend on a non-virtual xen-hypervisor-flavour to pull in + latest version. + -- Ben Hutchings <b...@decadent.org.uk> Fri, 29 Jun 2012 15:01:22 +0100 linux (3.2.21-3) unstable; urgency=low -- 1.7.10
>From 0c9597b01776f4cd1f6d27748652320760f59d8e Mon Sep 17 00:00:00 2001 From: Ian Campbell <i...@hellion.org.uk> Date: Fri, 13 Jul 2012 22:55:52 +0100 Subject: [PATCH] Make xen-hypervisor-flavour a real package --- xen/debian/changelog | 1 + xen/debian/rules.real | 9 +++++++++ xen/debian/templates/control.hypervisor.in | 9 ++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/xen/debian/changelog b/xen/debian/changelog index 9fec290..7025f3b 100644 --- a/xen/debian/changelog +++ b/xen/debian/changelog @@ -2,6 +2,7 @@ xen (4.1.3~rc1+hg-20120614.a9c0a89c08f2-5) UNRELEASED; urgency=low [ Ian Campbell ] * Set tap device MAC addresses to fe:ff:ff:ff:ff:ff (Closes: #671018) + * Make xen-hypervisor-flavour a real package to aid upgrade (Closes: #681376) [ Bastian Blank ] * Actually build-depend on new enough version of dpkg-dev. diff --git a/xen/debian/rules.real b/xen/debian/rules.real index 99ae1f0..b1e5be9 100644 --- a/xen/debian/rules.real +++ b/xen/debian/rules.real @@ -23,6 +23,7 @@ binary-arch-arch: install-xenstore-utils_$(ARCH) binary-arch-arch: install-lib-ocaml-dev_$(ARCH) binary-arch-arch: install-lib-ocaml_$(ARCH) binary-arch-flavour: install-hypervisor_$(ARCH)_$(FLAVOUR) +binary-arch-flavour: install-hypervisor-flavour_$(FLAVOUR) binary-indep: install-docs binary-indep: install-utils-common @@ -140,6 +141,14 @@ install-hypervisor_$(ARCH)_$(FLAVOUR): $(STAMPS_DIR)/build-hypervisor_$(ARCH)_$( cp $(DIR)/xen/xen.gz debian/$(PACKAGE_NAME)/boot/xen-$(VERSION)-$(FLAVOUR).gz +$(MAKE_SELF) install-base +install-hypervisor-flavour_$(FLAVOUR): PACKAGE_NAME = xen-hypervisor-$(FLAVOUR) +install-hypervisor-flavour_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME) +install-hypervisor-flavour_$(FLAVOUR): + dh_testdir + dh_testroot + dh_prep + +$(MAKE_SELF) install-base + install-libxen_$(ARCH): DIR = $(BUILD_DIR)/install-utils_$(ARCH) install-libxen_$(ARCH): DH_OPTIONS = -plibxen-$(VERSION) install-libxen_$(ARCH): $(STAMPS_DIR)/install-utils_$(ARCH) diff --git a/xen/debian/templates/control.hypervisor.in b/xen/debian/templates/control.hypervisor.in index b0ee0dd..7796610 100644 --- a/xen/debian/templates/control.hypervisor.in +++ b/xen/debian/templates/control.hypervisor.in @@ -1,6 +1,6 @@ Package: xen-hypervisor-@version@@localversion@ Depends: ${misc:Depends} -Provides: xen-hypervisor, xen-hypervisor-@version@, xen-hypervisor@localversion@ +Provides: xen-hypervisor, xen-hypervisor-@version@ Recommends: xen-utils-@version@ Suggests: xen-docs-@version@ Description: Xen Hypervisor on @class@ @@ -14,3 +14,10 @@ Description: Xen Hypervisor on @class@ specifically crafted to work as the Domain 0, mediating hardware access for XEN itself. +Package: xen-hypervisor@localversion@ +Depends: xen-hypervisor-@version@@localversion@, ${misc:Depends} +Description: Latest Xen Hypervisor on @class@ + This package depends on the latest version of the Xen hypervisor for @class@ + . + @desc@ + -- 1.7.10