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

Bug #1130974 reported by Sam Lantinga
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mesa (Ubuntu)
Invalid
Undecided
Maarten Lankhorst
Precise
Fix Released
Undecided
Maarten Lankhorst
xserver-xorg-video-nouveau (Ubuntu)
Invalid
Undecided
Unassigned
Precise
Fix Released
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)
tags: added: precise
Bryce Harrington (bryce)
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.