Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-15 Thread Robert Millan
2012/6/13 Julien Cristau jcris...@debian.org:
 I'm not sure what you mean here.  You want sys/types.h to define
 uintXX_t?  Then you need to request this to Glibc maintainers.

 Yes, I'd like kfreebsd sys/types.h to look like freebsd sys/types.h.

It seems you're regarding sys/types.h as a kernel-related header,
but this is not at all accurate.  Let me try to clarify things.

On FreeBSD, sys/types.h is a kernel header.  On GNU systems, it is
part of the C library.  Specifically in Debian, it is provided by
eglibc package.  Unlike many of the glibc headers from bits/*
hierarchy, sys/types.h is not kernel-specific at all.  It's the same
header for all glibc systems, regardless of their kernel.

As for kernel side of things, kFreeBSD provides its own set of
headers, which in Debian they're packaged as kfreebsd-kernel-headers.
sys/types.h is not among them.

In summary: none of this has anything to do with the kernel, it's a
pure userland issue.  The problem is simply that libdrm-dev attempts
to use uintXX_t without including the header that provides them.

 Or perhaps you want to emulate a FreeBSD-like build environment,
 regardless of GNU sys/types.h behaviour?  There's a package
 specifically for this purpose: freebsd-glue.

 How is one supposed to use that?  By passing -I/usr/include/freebsd to
 gcc?

Yes.  I fail to see how's that better than fixing a one-line bug [1].
That burden is not mine to carry though.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677260#25

-- 
Robert Millan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-15 Thread Julien Cristau
On Fri, Jun 15, 2012 at 18:46:10 +0200, Robert Millan wrote:

 In summary: none of this has anything to do with the kernel, it's a
 pure userland issue.  The problem is simply that libdrm-dev attempts
 to use uintXX_t without including the header that provides them.
 
drm.h is a kernel header.  It includes other kernel headers;
linux/types.h on linux, sys/types.h on bsd.

Cheers,
Julien



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-15 Thread Robert Millan
2012/6/15 Julien Cristau jcris...@debian.org:
 On Fri, Jun 15, 2012 at 18:46:10 +0200, Robert Millan wrote:

 In summary: none of this has anything to do with the kernel, it's a
 pure userland issue.  The problem is simply that libdrm-dev attempts
 to use uintXX_t without including the header that provides them.

 drm.h is a kernel header.  It includes other kernel headers;
 linux/types.h on linux, sys/types.h on bsd.

Are we talking about the same file?  I was referring to
/usr/include/libdrm/drm.h.

-- 
Robert Millan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-15 Thread Julien Cristau
On Fri, Jun 15, 2012 at 19:53:56 +0200, Robert Millan wrote:

 2012/6/15 Julien Cristau jcris...@debian.org:
  On Fri, Jun 15, 2012 at 18:46:10 +0200, Robert Millan wrote:
 
  In summary: none of this has anything to do with the kernel, it's a
  pure userland issue.  The problem is simply that libdrm-dev attempts
  to use uintXX_t without including the header that provides them.
 
  drm.h is a kernel header.  It includes other kernel headers;
  linux/types.h on linux, sys/types.h on bsd.
 
 Are we talking about the same file?  I was referring to
 /usr/include/libdrm/drm.h.
 
Yes.

Cheers,
Julien



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-15 Thread Robert Millan
2012/6/15 Julien Cristau jcris...@debian.org:
  drm.h is a kernel header.  It includes other kernel headers;
  linux/types.h on linux, sys/types.h on bsd.

 Are we talking about the same file?  I was referring to
 /usr/include/libdrm/drm.h.

 Yes.

Then you definitely don't want to be including sys/types.h as that's
a userland header in all Debian platforms.

If you want the kernel version of that header, it's in
sys/kern/types.h.  For this particular problem, I wouldn't recommend
it since uintXX_t assumption is clearly buggy, but it's your choice.

-- 
Robert Millan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-15 Thread Steven Chamberlain
2012/6/15 Julien Cristau jcris...@debian.org:
 drm.h is a kernel header.  It includes other kernel headers;
 linux/types.h on linux, sys/types.h on bsd.

libdrm's via_drm.h #includes via_drmclient.h, which has to be provided
by the openchrome driver;  doesn't that imply this is for userland?  In
that file is a #include stdint.h which would get the uintXX_t
definitions, except the #include drm.h happens too soon.

That #include drm.h is a recent(ish) change that upstream FreeBSD
doesn't have.  That also didn't exist in the (working?) via_drm.h
bundled with xserver-xorg-video-openchrome 0.2.904+svn1050-1

Also, upstream's *_drm.h headers[1] don't include sys/types.h or
stdint.h either, yet some of them make use of the uintXX_t types, making
those definitions seem like a prerequisite.  I think that was hinted at
during the response to [2].

So my current thinking is that the openchrome driver is forgetting to
include stdint.h, but this has gone unnoticed because FreeBSD's
sys/types.h would have included it as a side-effect.

xserver-xorg-video-intel includes stdint.h (from intel.h) before any of
the libdrm headers.  The mga driver does likewise, indirectly getting
stdint.h from inttypes.h.

I still think my most recent patch for this[3] is right.

[1] http://svnweb.freebsd.org/base/head/sys/dev/drm/
[2]
http://us.generation-nt.com/answer/patch-linux-headers-include-linux-types-h-where-appropriate-help-206535612.html
[3]
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=35;filename=20-BSD-stdint-prerequisite.diff;att=1;bug=677260

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-13 Thread Robert Millan
2012/6/13 Steven Chamberlain ste...@pyro.eu.org:
 My other guess would be this, which also works;  would appreciate advice
 from others on debian-bsd@ though:

It's basically up to libdrm-dev maintainers.  Do they expect that
stdint.h is a prerequisite before including drm.h?

On FreeBSD, including sys/types.h also gives you stdint.h. But
that doesn't apply to GNU systems.  This looks like a simple
portability issue.

I think the best solution is to include stdint.h from drm.h.
stdint.h is the only header that garantees uintXX_t types (as per
POSIX).

-- 
Robert Millan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-13 Thread Julien Cristau
On Wed, Jun 13, 2012 at 22:10:08 +0200, Robert Millan wrote:

 2012/6/13 Steven Chamberlain ste...@pyro.eu.org:
  My other guess would be this, which also works;  would appreciate advice
  from others on debian-bsd@ though:
 
 It's basically up to libdrm-dev maintainers.  Do they expect that
 stdint.h is a prerequisite before including drm.h?
 
No.

 On FreeBSD, including sys/types.h also gives you stdint.h. But
 that doesn't apply to GNU systems.  This looks like a simple
 portability issue.
 
I'd rather that got fixed in kfreebsd, unless there's a good reason to
differ here.

 I think the best solution is to include stdint.h from drm.h.
 stdint.h is the only header that garantees uintXX_t types (as per
 POSIX).
 
Cheers,
Julien



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-13 Thread Robert Millan
2012/6/13 Julien Cristau jcris...@debian.org:
 On FreeBSD, including sys/types.h also gives you stdint.h. But
 that doesn't apply to GNU systems.  This looks like a simple
 portability issue.

 I'd rather that got fixed in kfreebsd, unless there's a good reason to
 differ here.

I'm not sure what you mean here.  You want sys/types.h to define
uintXX_t?  Then you need to request this to Glibc maintainers.

Or perhaps you want to emulate a FreeBSD-like build environment,
regardless of GNU sys/types.h behaviour?  There's a package
specifically for this purpose: freebsd-glue.

-- 
Robert Millan



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-13 Thread Julien Cristau
On Wed, Jun 13, 2012 at 22:22:23 +0200, Robert Millan wrote:

 2012/6/13 Julien Cristau jcris...@debian.org:
  On FreeBSD, including sys/types.h also gives you stdint.h. But
  that doesn't apply to GNU systems.  This looks like a simple
  portability issue.
 
  I'd rather that got fixed in kfreebsd, unless there's a good reason to
  differ here.
 
 I'm not sure what you mean here.  You want sys/types.h to define
 uintXX_t?  Then you need to request this to Glibc maintainers.
 
Yes, I'd like kfreebsd sys/types.h to look like freebsd sys/types.h.

 Or perhaps you want to emulate a FreeBSD-like build environment,
 regardless of GNU sys/types.h behaviour?  There's a package
 specifically for this purpose: freebsd-glue.
 
How is one supposed to use that?  By passing -I/usr/include/freebsd to
gcc?

Cheers,
Julien



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Christoph Egger
Package: src:xserver-xorg-video-openchrome
Version: 1:0.2.906-1
Severity: serious
Tags: sid wheezy
User: debian-...@lists.debian.org
Usertags: kfreebsd
X-Debbugs-Cc: debian-...@lists.debian.org
Justification: fails to build from source (but built successfully in the past)

Hi!

Your package failed to build on the kfreebsd-* buildds:

In file included from /usr/include/libdrm/via_drm.h:27:0,
 from ../../src/via_xvmc.h:29,
 from ../../libxvmc/viaXvMCPriv.h:34,
 from ../../libxvmc/viaLowLevel.c:34:
/usr/include/libdrm/drm.h:50:1: error: unknown type name 'uint8_t'
/usr/include/libdrm/drm.h:52:1: error: unknown type name 'uint16_t'
/usr/include/libdrm/drm.h:54:1: error: unknown type name 'uint32_t'
/usr/include/libdrm/drm.h:56:1: error: unknown type name 'uint64_t'
make[3]: *** [libchromeXvMC_la-viaLowLevel.lo] Error 1

Full build log at
https://buildd.debian.org/status/fetch.php?pkg=xserver-xorg-video-openchromearch=kfreebsd-i386ver=1%3A0.2.906-1stamp=1339164249

Regards

Christoph

If you have further questions please mail debian-...@lists.debian.org

-- 
9FED 5C6C E206 B70A 5857  70CA 9655 22B9 D49A E731
Debian Developer | Lisp Hacker | CaCert Assurer



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Julien Cristau
On Tue, Jun 12, 2012 at 18:26:17 +0200, Christoph Egger wrote:

 Package: src:xserver-xorg-video-openchrome
 Version: 1:0.2.906-1
 Severity: serious
 Tags: sid wheezy
 User: debian-...@lists.debian.org
 Usertags: kfreebsd
 X-Debbugs-Cc: debian-...@lists.debian.org
 Justification: fails to build from source (but built successfully in the past)
 
 Hi!
 
 Your package failed to build on the kfreebsd-* buildds:
 
 In file included from /usr/include/libdrm/via_drm.h:27:0,
  from ../../src/via_xvmc.h:29,
  from ../../libxvmc/viaXvMCPriv.h:34,
  from ../../libxvmc/viaLowLevel.c:34:
 /usr/include/libdrm/drm.h:50:1: error: unknown type name 'uint8_t'
 /usr/include/libdrm/drm.h:52:1: error: unknown type name 'uint16_t'
 /usr/include/libdrm/drm.h:54:1: error: unknown type name 'uint32_t'
 /usr/include/libdrm/drm.h:56:1: error: unknown type name 'uint64_t'
 make[3]: *** [libchromeXvMC_la-viaLowLevel.lo] Error 1
 
Does freebsd sys/types.h no longer define those types?  That sounds
like a regression there, not in this package.

Cheers,
Julien



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Steven Chamberlain
On 12/06/12 19:44, Julien Cristau wrote:
 In file included from /usr/include/libdrm/via_drm.h:27:0,
  from ../../src/via_xvmc.h:29,
  from ../../libxvmc/viaXvMCPriv.h:34,
  from ../../libxvmc/viaLowLevel.c:34:
 /usr/include/libdrm/drm.h:50:1: error: unknown type name 'uint8_t'
 /usr/include/libdrm/drm.h:52:1: error: unknown type name 'uint16_t'
 /usr/include/libdrm/drm.h:54:1: error: unknown type name 'uint32_t'
 /usr/include/libdrm/drm.h:56:1: error: unknown type name 'uint64_t'
 make[3]: *** [libchromeXvMC_la-viaLowLevel.lo] Error 1

 Does freebsd sys/types.h no longer define those types?  That sounds
 like a regression there, not in this package.

Hi Julien,

They're in stdint.h, and that is not being included any more.

This used to happen when a bundled via_drm.h included via_drmclient.h.
Now the system's libdrm/via_drm.h has replaced it, but that includes
drm.h before via_drmclient.h, using the C99 integer types without
including stdint.h first.

Therefore the openchrome 0.2.904+svn1050 package (still) builds on
kfreebsd-* whereas 0.2.906 does not.  This seems to be a bug for the
libdrm-dev package.

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Julien Cristau
On Tue, Jun 12, 2012 at 21:57:38 +0100, Steven Chamberlain wrote:

 On 12/06/12 19:44, Julien Cristau wrote:
  In file included from /usr/include/libdrm/via_drm.h:27:0,
   from ../../src/via_xvmc.h:29,
   from ../../libxvmc/viaXvMCPriv.h:34,
   from ../../libxvmc/viaLowLevel.c:34:
  /usr/include/libdrm/drm.h:50:1: error: unknown type name 'uint8_t'
  /usr/include/libdrm/drm.h:52:1: error: unknown type name 'uint16_t'
  /usr/include/libdrm/drm.h:54:1: error: unknown type name 'uint32_t'
  /usr/include/libdrm/drm.h:56:1: error: unknown type name 'uint64_t'
  make[3]: *** [libchromeXvMC_la-viaLowLevel.lo] Error 1
 
  Does freebsd sys/types.h no longer define those types?  That sounds
  like a regression there, not in this package.
 
 Hi Julien,
 
 They're in stdint.h, and that is not being included any more.
 
stdint.h is a userspace header though, I assume it's not available in
kernel space?

 This used to happen when a bundled via_drm.h included via_drmclient.h.
 Now the system's libdrm/via_drm.h has replaced it, but that includes
 drm.h before via_drmclient.h, using the C99 integer types without
 including stdint.h first.
 
 Therefore the openchrome 0.2.904+svn1050 package (still) builds on
 kfreebsd-* whereas 0.2.906 does not.  This seems to be a bug for the
 libdrm-dev package.
 
Then I'm going to ask for a patch, because drm.h is supposed to work on
all of linux and freebsd kernel and userland, which means it either got
b0rked by kfreebsd or by a freebsd update, AFAICT.

Cheers,
Julien



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Steven Chamberlain
On 12/06/12 22:19, Julien Cristau wrote:
 stdint.h is a userspace header though, I assume it's not available in
 kernel space?

I don't know.  But that is where the via_drm.h bundled in openchrome
0.2.904+svn1050 was getting those definitions from.


This commit shows when via_drm.h (as it is now shipped in libdrm-dev)
became broken at some point:

http://anonscm.debian.org/gitweb/?p=pkg-xorg/lib/libdrm.git;a=commitdiff;h=82bf52fbcdf1e71840c2024bb2bc05a8daeaafad

And this change (I wouldn't call it a patch, I doubt it is correct)
seems to fix it so that openchrome_drv can build again:

 --- /usr/include/libdrm/drm.h.orig
 +++ /usr/include/libdrm/drm.h
 @@ -46,6 +46,7 @@

  #include sys/ioccom.h
  #include sys/types.h
 +#include stdint.h
  typedef int8_t   __s8;
  typedef uint8_t  __u8;
  typedef int16_t  __s16;

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Steven Chamberlain
My other guess would be this, which also works;  would appreciate advice
from others on debian-bsd@ though:

--- /usr/include/libdrm/drm.h.orig
+++ /usr/include/libdrm/drm.h
@@ -46,14 +46,14 @@

 #include sys/ioccom.h
 #include sys/types.h
-typedef int8_t   __s8;
-typedef uint8_t  __u8;
-typedef int16_t  __s16;
-typedef uint16_t __u16;
-typedef int32_t  __s32;
-typedef uint32_t __u32;
-typedef int64_t  __s64;
-typedef uint64_t __u64;
+typedef __int8_t   __s8;
+typedef __uint8_t  __u8;
+typedef __int16_t  __s16;
+typedef __uint16_t __u16;
+typedef __int32_t  __s32;
+typedef __uint32_t __u32;
+typedef __int64_t  __s64;
+typedef __uint64_t __u64;
 typedef unsigned long drm_handle_t;

 #endif

Thanks!
Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677260: xserver-xorg-video-openchrome: FTBFS[kfreebsd]: error: unknown type name 'uint8_t'

2012-06-12 Thread Steven Chamberlain
tags 677260 + patch
thanks

Hi,

I believe the attached patch to be an appropriate fix.  I think userland
should consider stdint.h a prerequisite of using via_drm.h;  and I'm
also assuming that all supported platforms will have it.  The intel
driver makes that assumption already.

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org
Description: include stdint.h, a prerequisite of via_drm.h on BSD
 Must include stdint.h here because it is a prerequisite of drm.h
 (which gets included from via_drm.h).
 .
 Fixes a FTBFS seen on GNU/kFreeBSD.
Author: Steven Chamberlain ste...@pyro.eu.org
Bug-Debian: http://bugs.debian.org/677260

--- xserver-xorg-video-openchrome-0.2.906.orig/src/via_xvmc.h	2012-05-15 21:57:45.0 +0100
+++ xserver-xorg-video-openchrome-0.2.906/src/via_xvmc.h	2012-06-13 00:22:43.729188653 +0100
@@ -26,6 +26,8 @@
 #ifndef _VIA_XVMC_H
 #define _VIA_XVMC_H 1
 
+#include stdint.h
+
 #include via_drm.h
 
 /*