[mythtv] Ticket #3062: Freebsd compatibility patches

usleepless at gmail.com usleepless at gmail.com
Thu Feb 8 12:53:36 UTC 2007


List,

On 2/8/07, MythTV <mythtv at cvs.mythtv.org> wrote:
> #3062: Freebsd compatibility patches
> ----------------------------------+-----------------------------------------
>  Reporter:  usleepless at gmail.com  |        Owner:  ijr
>      Type:  enhancement           |       Status:  new
>  Priority:  minor                 |    Milestone:  unknown
> Component:  mythtv                |      Version:  head
>  Severity:  medium                |   Resolution:
> ----------------------------------+-----------------------------------------
> Comment (by nigel):

is it ok to reply to these msgs and discuss these issues on the list?

>  videodev_myth.h - Patch is good on OS X 10.4. (although I am curious as to
>  why it is needed. Yes the current code is non-portable, but are long longs
>  not 64bit on FreeBSD?)

well, they actually are. i was compiling mythtv on an amd64 system,
and ran into problems with incompatible ioctls.

it turned out that i redefined the long-long in the pvr150/500 driver
to 32bits already, because non-64bits-freebsd's don't accept 64-bits
operations in the kernel.

so i had a driver <-> userland mismatch. i went with the lowest common
denominator ( ie: 32bits )

>  [[BR]]
>  mpegrecorder.cpp - Doesn't FreeBSD have select() ? (I thought if OS X
>  does, FreeBSD would too?)

it does, but currently the pvr150/500 driver does not support it,
although i seem to have implemented it. i need to look at that later,
it is my intention to make select work for the freebsd-driver. but in
the meantime this should work for people who want to run mythtv on
freebsd.

>  [[BR]]
>  mainserver.cpp - What is the problem with the lock?

well, that's a good question. i don't know either. but
mythbackend<->mythfrontend communication only works when these locks
are disabled. otherwise commands timeout and nothing happens ( this is
the patch that took me a real long time to find ). this is the problem
most freebsd people encountered but couldn't solve.

>  [[BR]]
>  videoout_xv.cpp - I suspect NetBSD also lacks malloc.h. It should probably
>  be:
>  {{{
>  #ifdef _linux_
>  #include <malloc.h>
>  #endif
>  }}}

malloc.h is deprecated on FreeBSD. do i need to resubmit the patch
with this changed?

>  [[BR]]
>  yuv2rgb.cpp - Don't see the need. The values should all be small positives
>  (''e.g.'' UCHAR_MAX is 255)

fails to compile otherwise.

>  [[BR]]
>  httprequest.cpp - Could you use the sendfile64() that I wrote for Darwin
>  instead?

i will need to look it up. is it in the same file?

>  [[BR]]
>  upnputil.h - How about this instead:
>  {{{
>  #ifdef __FreeBSD__
>  #define __suseconds_t_defined
>  #endif
>  }}}

why is this better?

>  [[BR]]
>  version.pro - Curious. What is the behavior without the sh -c ?
>  [[BR]]

command fails. doesn't produce version.cpp, build fails.

>  Sorry if I seem picky here. I just want to understand these, and make sure
>  it all works for Linux, *BSD, Darwin, and maybe even Windows.

no problem at all, i am happy to explain the patches.

regards,

usleep


More information about the mythtv-dev mailing list