Mir/Mesa packaging have a dependency cycle so neither can build

Bug #1192908 reported by Daniel van Vugt on 2013-06-20
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Fix Released
Daniel van Vugt
mesa (Ubuntu)
mir (Ubuntu)

Bug Description

Mir/Mesa have a dependency cycle so cannot build if there are any significant changes in one (like a soname/ABI bump).

Mesa depends on mirclient
mirserver depends on Mesa

what makes it a cycle is that mirclient and mirserver are a single source package. So if anything changes (like libmirclient0 changing to libmirclient1) then we're stuck and can't rebuild anything. Not sure which chicken or egg came first and how we made it work originally.

Related branches

summary: - Mir/Mesa have a dependency cycle so cannot be upgraded
+ Mir/Mesa packaging have a dependency cycle so cannot be upgraded

You might be able to work around the problem by building Mir against vanilla Mesa (which does not depend on Mir). That might work, as a slow and painful workaround.

Changed in mesa (Ubuntu):
status: New → Won't Fix
description: updated
Kevin DuBois (kdub) wrote :

we should move include/shared/mir_toolkit/mesa/native_display.h somewhere upstream, to mesa.

Changed in mir:
status: New → In Progress
Changed in mir:
importance: Undecided → High
Daniel van Vugt (vanvugt) wrote :
summary: - Mir/Mesa packaging have a dependency cycle so cannot be upgraded
+ Mir/Mesa packaging have a dependency cycle so neither can build
Changed in mir:
importance: High → Critical
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.0.4

Changed in mir:
status: In Progress → Fix Committed
Daniel van Vugt (vanvugt) wrote :

Actually I will leave this open for Mesa. A more elegant solution may be possible in Mesa. For example: Make libEGL dynamically load its backend at runtime rather than linking to all backends (X11/Mir/Wayland/...) at build time.

Changed in mesa (Ubuntu):
status: Won't Fix → Triaged
importance: Undecided → Medium
Changed in mir:
milestone: none → 0.0.4
Changed in mir:
milestone: 0.0.4 → 0.0.5
Changed in mir:
status: Fix Committed → Fix Released
Alexandros Frantzis (afrantzis) wrote :

This bugs is still valid. We don't have a problem with at this point, because we have both mir and mesa packages in the archive, so we can build new versions using the existing versions of -dev packages to fulfill dependencies (this needs some care when we make incompatible changes).

I think our best way forward is to remove the dependency libegl1-mesa-dev has on libmirclient-dev. It's reasonable to assume that a program that needs to use Mir with EGL will depend on libmirclient-dev itself, or at least mircommon-dev (otherwise how can it know about the MirConnection/Surfaces types it needs to pass to EGL?).

I would also recommend changing mesa to build depend on mircommon-dev instead of the full libmirclient-dev, since it only needs the Mir EGL definitions in the former package.

Daniel van Vugt (vanvugt) wrote :

OK, as this bug was Fix Released some time ago, but the fix is no longer present and we need to do a new one, I'm going to reopen duplicate bug 1239037 and continue the conversation there.

Changed in mesa (Ubuntu):
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers