mesa_8.0.4-0ubuntu0.3 fails to build on 12.04.2

Bug #1130974 reported by Sam Lantinga on 2013-02-21
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mesa (Ubuntu)
Undecided
Maarten Lankhorst
Precise
Undecided
Maarten Lankhorst
xserver-xorg-video-nouveau (Ubuntu)
Undecided
Unassigned
Precise
Undecided
Maarten Lankhorst

Bug Description

[Impact]
 * Building mesa and xserver-xorg-video-nouveau from source with the updates pocket enabled will not work correctly.

[Test Case]
 * Build and run those affected packages, they should build correctly and still link against libdrm_nouveau.so.1

[Regression Potential]
 * Theoretically just a rebuild, so when I initially pushed the libdrm update I didn't want to risk pushing the updates to those packages since theoretically they should otherwise be identical. I never broke abi compability, so this would just be a rebuild.
 * Build logs should be looked over to ensure that no strange things pop up.

[Other Info]
  * libdrm moved to a new abi, but retained the same soname with a small bump. This means that the old mesa and xxv-nouveau packages need to look for libdrm-nouveau1's package config now, which contains the correct information.
 * libdrm_nouveau.so.1 -> old abi, link against it with -ldrm_nouveau1, and use libdrm-nouveau1 pkg-config
 * libdrm_nouveau.so.2 -> new abi, libdrm-nouveau pkg-config and -ldrm-nouveau should be used.

[Original bug report]
It looks like the libdrm_nouveau library has split into version 1 and version 2, but the mesa package shipped with Ubuntu precise hasn't been updated to build with the updated packages.

apt-get source mesa
pbuilder-dist precise build mesa_8.0.4-0ubuntu0.3.dsc

This fails with:
mklib: Making Linux shared library: nouveau_vieux_dri.so.tmp
g++ -D_FORTIFY_SOURCE=2 -Wall -g -O2 -Wall -Wmissing-prototypes -std=c99 -fno-st
rict-aliasing -fno-builtin-memcmp -Wall -g -O2 -fPIC -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_MINCORE -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0300 -fvisibility=hidden -o nouveau_vieux_dri.so.test ../../../../../src/mesa/drivers/dri/common/dri_test.o nouveau_vieux_dri.so.tmp -L../../../../../x86_64-linux-gnu -Wl,-R/usr/lib/x86_64-linux-gnu/dri -ldricore -lglsl -ldrm -lexpat -lm -lpthread -ldl -ldrm_nouveau
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_pushbuf_flush'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_pending'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_pushbuf_marker_undo'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_grobj_autobind'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_pushbuf_marker_emit'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_unmap'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_channel_free'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_grobj_free'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_pushbuf_emit_reloc'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_device_close'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_channel_alloc'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_handle_get'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_handle_ref'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_notifier_alloc'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_bo_new_tile'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_grobj_alloc'
nouveau_vieux_dri.so.tmp: undefined reference to `nouveau_notifier_free'
collect2: ld returned 1 exit status
make[7]: *** [nouveau_vieux_dri.so] Error 1

Revision history for this message
Chow Loong Jin (hyperair) wrote :

Looks like an ABI break in libdrm-nouveau, which resulted in a SONAME bump from libdrm-nouveau.so.1 to libdrm-nouveau.so.2.

Revision history for this message
Sam Lantinga (saml-8) wrote :

Here's a patch which partially fixes it, but not entirely. Anybody want to dig in and see what I've missed?

Revision history for this message
Sam Lantinga (saml-8) wrote :

Okay, here is another revision of the patch which looks like it works.

Cheers!

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "Patch to use libdrm_nouveau1" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch
Revision history for this message
Sam Lantinga (saml-8) wrote :

01_libdrm_nouveau1.patch is the patch you want to review.

Bryce Harrington (bryce) on 2013-02-21
tags: added: precise
Bryce Harrington (bryce) on 2013-02-21
Changed in mesa (Ubuntu):
assignee: nobody → Maarten Lankhorst (mlankhorst)
Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

Should have brough it to my attention before, I was aware of the build break, but I felt that doing a rebuild just for the sake of doing a rebuild wouldn't fix things. The resulting binary should be identical.

Anyhow I attached the patch I originally used, I fished it back up from mesa-8.0.3-0ubuntu2 upload in the q-lts-backport ppa.

https://launchpad.net/~ubuntu-x-swat/+archive/q-lts-backport/+packages?field.name_filter=mesa&field.status_filter=&field.series_filter=

Changed in mesa (Ubuntu Precise):
assignee: nobody → Maarten Lankhorst (mlankhorst)
Changed in mesa (Ubuntu):
status: New → Invalid
Changed in mesa (Ubuntu Precise):
status: New → In Progress
Changed in xserver-xorg-video-nouveau (Ubuntu):
status: New → Invalid
Changed in xserver-xorg-video-nouveau (Ubuntu Precise):
assignee: nobody → Maarten Lankhorst (mlankhorst)
status: New → In Progress
Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :
Changed in plymouth (Ubuntu Precise):
assignee: nobody → Maarten Lankhorst (mlankhorst)
Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

and plymouth needs the same patch as xserver-xorg-video-nouveau does

description: updated
Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

Looks like I did the plymouth upload after libdrm, so I already had it fixed there. :-)

no longer affects: plymouth (Ubuntu)
description: updated
no longer affects: plymouth (Ubuntu Precise)
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Sam, or anyone else affected,

Accepted mesa into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/mesa/8.0.4-0ubuntu0.4 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in mesa (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Changed in xserver-xorg-video-nouveau (Ubuntu Precise):
status: In Progress → Fix Committed
Revision history for this message
Chris Halse Rogers (raof) wrote :

Hello Sam, or anyone else affected,

Accepted xserver-xorg-video-nouveau into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/xserver-xorg-video-nouveau/1:0.0.16+git20111201+b5534a1-1build3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

xserver-xorg-video-nouveau still works for me on precise with the update, and opengl didn't seem to break either. Verification done. intel opengl is still working too.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Colin Watson (cjwatson) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mesa - 8.0.4-0ubuntu0.4

---------------
mesa (8.0.4-0ubuntu0.4) precise-proposed; urgency=low

  * Bump libdrm-dev requirement to >= 2.4.34 to force building against new libdrm
  * Add libdrm_nouveau1.diff to fix the build against the libdrm-dev from precise-updates.
    - Fixes FTBFS (LP: #1130974)
 -- Maarten Lankhorst <email address hidden> Thu, 21 Feb 2013 14:39:41 +0100

Changed in mesa (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-video-nouveau - 1:0.0.16+git20111201+b5534a1-1build3

---------------
xserver-xorg-video-nouveau (1:0.0.16+git20111201+b5534a1-1build3) precise-proposed; urgency=low

  * Add 100-nouveau-libdrm1.diff to build on top of new
    libdrm >= 2.4.34 with old abi, and require newer libdrm. (LP: #1130974)
 -- Maarten Lankhorst <email address hidden> Thu, 21 Feb 2013 14:52:10 +0100

Changed in xserver-xorg-video-nouveau (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
Sam Lantinga (saml-8) wrote :

Thanks!

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers