[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#633786: libdrm-nouveau1a: Doesn't Depends on a sufficiently recent version of libdrm2



Sorry for having this linger for so long. :-(

On 2011-07-18 22:37 +0200, Sven Joachim wrote:

> On 2011-07-18 21:06 +0200, Julien Cristau wrote:
>
>> On Wed, Jul 13, 2011 at 20:16:56 +0200, Sven Joachim wrote:
>>
>>> Except that libdrm-nouveau1a does not reference drmGetDeviceNameFromFd
>>> anywhere.  The DDX driver (xserver-xorg-video-nouveau) does, however.
>>> But for some reason this package does not depend on libdrm2 at all,
>>> although /usr/lib/xorg/modules/drivers/nouveau_drv.so is linked against
>>> libdrm.so.2.
>>> 
>> Doesn't look like it uses -ldrm actually.  Something like this
>> (untested)?
>>
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index e9e84ae..3b9f0f6 100644
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -25,8 +25,10 @@
>>  # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
>>  AM_CFLAGS = @XORG_CFLAGS@ @LIBUDEV_CFLAGS@ @LIBDRM_NOUVEAU_CFLAGS@
>>  nouveau_drv_la_LTLIBRARIES = nouveau_drv.la
>> -nouveau_drv_la_LDFLAGS = -module -avoid-version @LIBDRM_NOUVEAU_LIBS@ \
>> -                        @LIBUDEV_LIBS@
>> +nouveau_drv_la_LDFLAGS = -module -avoid-version
>> +nouveau_drv_la_LIBADD = @LIBDRM_NOUVEAU_LIBS@ \
>> +                        @LIBUDEV_LIBS@ \
>> +                        @XORG_LIBS@
>>  nouveau_drv_ladir = @moduledir@/drivers
>>  
>>  nouveau_drv_la_SOURCES = \
>
> Does not work out of the box because your mailer converted tabs into
> spaces. :-/ After fixing that it works, with only the minor problem that
> xserver-xorg-video-nouveau gains an unneeded dependency on
> libpciaccess0:
>
> ,----
> | dpkg-shlibdeps: warning: dependency on libpciaccess.so.0 could be
> | avoided if
> | "debian/xserver-xorg-video-nouveau/usr/lib/xorg/modules/drivers/nouveau_drv.so"
> | were not uselessly linked against it (they use none of its symbols).
> `----

The following patch (applicable against version 1.0.8) seems to actually
work:

--8<---------------cut here---------------start------------->8---
diff --git a/configure.ac b/configure.ac
index 6f7f870..15c8402 100644
--- a/configure.ac
+++ b/configure.ac
@@ -84,6 +84,10 @@ PKG_CHECK_MODULES(LIBDRM_NOUVEAU, [libdrm_nouveau >= 2.4.25])
 AC_SUBST(LIBDRM_NOUVEAU_CFLAGS)
 AC_SUBST(LIBDRM_NOUVEAU_LIBS)
 
+PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.17])
+AC_SUBST(LIBDRM_CFLAGS)
+AC_SUBST(LIBDRM_LIBS)
+
 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.8] xproto fontsproto libdrm $REQUIRED_MODULES)
 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
 		  HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
diff --git a/src/Makefile.am b/src/Makefile.am
index f54e135..5836ead 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -23,10 +23,10 @@
 # -avoid-version prevents gratuitous .0.0.0 version numbers on the end
 # _ladir passes a dummy rpath to libtool so the thing will actually link
 # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
-AM_CFLAGS = @XORG_CFLAGS@ @LIBUDEV_CFLAGS@ @LIBDRM_NOUVEAU_CFLAGS@
+AM_CFLAGS = @XORG_CFLAGS@ @LIBUDEV_CFLAGS@ @LIBDRM_NOUVEAU_CFLAGS@ @LIBDRM_CFLAGS@
 nouveau_drv_la_LTLIBRARIES = nouveau_drv.la
 nouveau_drv_la_LDFLAGS = -module -avoid-version @LIBDRM_NOUVEAU_LIBS@ \
-			 @LIBUDEV_LIBS@
+			 @LIBUDEV_LIBS@ @LIBDRM_LIBS@
 nouveau_drv_ladir = @moduledir@/drivers
 
 nouveau_drv_la_SOURCES = \
--8<---------------cut here---------------end--------------->8---

I'm not really an autotools expert though, so I would prefer to get some
feedback before I send it upstream.

Cheers,
       Sven


Reply to: