Subject: pkg/36584: multimedia/libdvdread does not compile under Interix
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <jruschme@comcast.net>
List: pkgsrc-bugs
Date: 07/01/2007 16:25:00
>Number: 36584
>Category: pkg
>Synopsis: multimedia/libdvdread does not compile under Interix
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: support
>Submitter-Id: net
>Arrival-Date: Sun Jul 01 16:25:00 +0000 2007
>Originator: John Ruschmeyer
>Release: pkgsrc 2007Q1
>Organization:
>Environment:
Interix enterprise 3.5 SP-8.0.1969.1 x86 Intel_x86_Family15_Model0_Stepping7
>Description:
The multimedia/libdvdread package does not curretnly build under Interix/SFU because Interix does not provide either <inttypes.h> or <stdint.h>. This is so that the code can use definitions for severl unsigned types. NetBSD has equivalent types, but defines them with diffent names and in a different include file.
This problem is especially series because libdvdread is a dependency of a number of other packages.
>How-To-Repeat:
>Fix:
Starting at line 26 of dvdread/ifo_types.h is a block which begins "#if defined(__BEOS__)" and contains the test in question in the #else clause.
This block should be replaced with:
#if defined(__BEOS__)
#if !defined(_INTTYPES_H_) && !defined(_INTTYPES_H) && !defined(_STDINT_H_) && !
defined(_STDINT_H)
#error "Must include <inttypes.h> or <stdint.h> before any libdvdread header."
#endif
#else
#if defined(__INTERIX)
#include <sys/types.h>
#define uint8_t u_int8_t
#define uint16_t u_int16_t
#define uint32_t u_int32_t
#define uint64_t u_int64_t
#else
#if !defined(UINT8_MAX) || !defined(UINT16_MAX) || !defined(INT32_MAX)
#error "Must include <inttypes.h> or <stdint.h> before any libdvdread header."
#endif
#endif
#endif