From eaf130a2974449b5a79e168aa0ed263fedfbffad Mon Sep 17 00:00:00 2001 From: Scott McCreary Date: Sat, 21 Feb 2009 22:52:16 +0000 Subject: [PATCH] Updated patch for vlc-0.8.6i on Haiku, this one gets a bit further, but still not linking. --- media-video/vlc/vlc-0.8.6i-haiku.diff | 337 ++++++++++++++++++++++++-- 1 file changed, 322 insertions(+), 15 deletions(-) diff --git a/media-video/vlc/vlc-0.8.6i-haiku.diff b/media-video/vlc/vlc-0.8.6i-haiku.diff index 5ce08cde0..dfd9c4cc2 100644 --- a/media-video/vlc/vlc-0.8.6i-haiku.diff +++ b/media-video/vlc/vlc-0.8.6i-haiku.diff @@ -1,6 +1,239 @@ +diff -urN vlc-0.8.6i/configure.ac vlc-0.8.6i-haiku/configure.ac +--- vlc-0.8.6i/configure.ac 2009-02-18 15:15:26.000000000 +0000 ++++ vlc-0.8.6i-haiku/configure.ac 2009-02-21 22:47:18.000000000 +0000 +@@ -256,6 +256,7 @@ + VLC_ADD_LDFLAGS([vlc logger],[-lbe]) + VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame]) + VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl]) ++ VLC_ADD_LDFLAGS([access_file],[-lpoll]) + LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}" + + dnl Check for BONE +@@ -270,11 +271,24 @@ + VLC_ADD_LDFLAGS([beos],[-lzeta]) + fi + ;; ++ haiku*) ++ SYS=haiku ++ CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}" ++ CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}" ++ VLC_ADD_CXXFLAGS([haiku],[]) ++ VLC_ADD_LDFLAGS([vlc logger],[-lbe]) ++ VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame]) ++ VLC_ADD_LDFLAGS([dvdnav dvdread],[]) ++ VLC_ADD_LDFLAGS([access_file],[-lroot]) ++ LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}" ++ VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnetwork]) ++ ;; + *) + SYS="${target_os}" + ;; + esac + AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos") ++AM_CONDITIONAL(HAVE_HAIKU, test "${SYS}" = "haiku") + AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin") + AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32") + AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce") +@@ -444,12 +458,26 @@ + ]) + ]) + ++AC_CHECK_FUNCS(connect,,[ ++ AC_CHECK_LIB(network,connect,[ ++ VLC_ADD_LDFLAGS([vlc ipv4 ipv6 cdda cddax],-lnetwork) ++ LIBS_socket="-lnetwork" ++ ]) ++]) ++ ++ + AC_CHECK_FUNCS(send,,[ + AC_CHECK_LIB(socket,send,[ + VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket]) + ]) + ]) + ++AC_CHECK_FUNCS(send,,[ ++ AC_CHECK_LIB(network,send,[ ++ VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lnetwork]) ++ ]) ++]) ++ + AC_CHECK_FUNCS(gethostbyname,,[ + AC_CHECK_LIB(nsl,gethostbyname,[ + VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl]) +@@ -460,11 +488,22 @@ + ]) + ]) + ++AC_CHECK_FUNCS(gethostbyname,,[ ++ AC_CHECK_LIB(nsl,gethostbyname,[ ++ VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl]) ++ ],[ ++ AC_CHECK_LIB(network,gethostbyname,[ ++ VLC_ADD_LDFLAGS([ipv4 access_mms],[-lnetwork]) ++ ]) ++ ]) ++]) ++ + dnl Check for socklen_t + AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t, + [AC_TRY_COMPILE( + [#include +- #include ], ++ #include ++ #include ], + [socklen_t len = 42; return len;], + ac_cv_type_socklen_t=yes, + ac_cv_type_socklen_t=no)]) +@@ -497,8 +536,10 @@ + dnl we purposedly make the test fail on Windows + LIBS_save="${LIBS}" + AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.]) ++AC_SEARCH_LIBS([getaddrinfo], [nsl] [network], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}]) + AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}]) + ++ + dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro + dnl are + LIBS="${LIBS_gai}" +@@ -804,8 +845,6 @@ + + dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal. + +-PKG_PROG_PKG_CONFIG() +- + dnl Check for hal + AC_ARG_ENABLE(hal, + [ --enable-hal Linux HAL services discovery (default enabled)]) +@@ -2742,28 +2781,12 @@ + AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h) + AC_CHECK_HEADERS(postproc/postprocess.h libpostproc/postprocess.h) + +- AC_CHECK_LIB(avutil, av_crc_init, [ +- VLC_ADD_LDFLAGS([ffmpeg],[-lavutil]) +- LDAVUTIL="-lavutil"]) +- +- AC_CHECK_LIB(avcodec, avcodec_init, [ +- VLC_ADD_BUILTINS([ffmpeg]) +- VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec]) +- if test "${enable_sout}" != "no"; then +- VLC_ADD_BUILTINS([stream_out_switcher]) +- fi], +- [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (svn version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL]) +- +- +- AC_CHECK_LIB(postproc, pp_postprocess, [ +- VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])], +- AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]), +- [$LDAVUTIL]) +- +- AC_CHECK_LIB(avformat, av_open_input_stream, [ +- VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL]) +- LDFLAGS="${LDFLAGS_save}" +- CPPFLAGS="${CPPFLAGS_save}" ++ VLC_ADD_BUILTINS([ffmpeg]) ++ VLC_ADD_LDFLAGS([ffmpeg],[-lavutil]) ++ LDAVUTIL="-lavutil" ++ VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc]) ++ VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec]) ++ VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) + ]) + fi + fi +@@ -4407,7 +4430,7 @@ + AC_ARG_WITH(,[Interface plugins:]) + + dnl special case for BeOS +-if test "${SYS}" = "beos" ++if test "${SYS}" = "beos" || test "${SYS}" = "haiku" + then + VLC_ADD_BUILTINS([beos]) + fi +@@ -4418,8 +4441,7 @@ + AC_ARG_ENABLE(skins2, + [ --enable-skins2 Skins2 interface module (experimental)]) + if test "${enable_skins2}" = "yes" || +- (test "${SYS}" != "darwin" && test "${SYS}" != "beos" && +- test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then ++ (test "${SYS}" != "darwin" && test "${SYS}" != "beos" && test "${SYS}" != "haiku" && test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then + + dnl test for the required libraries + skins2_missing_lib="no" +diff -urN vlc-0.8.6i/extras/contrib/src/Makefile vlc-0.8.6i-haiku/extras/contrib/src/Makefile +--- vlc-0.8.6i/extras/contrib/src/Makefile 2009-02-18 15:15:55.000000000 +0000 ++++ vlc-0.8.6i-haiku/extras/contrib/src/Makefile 2009-02-18 15:13:25.000000000 +0000 +@@ -153,9 +153,9 @@ + ifdef HAVE_BEOS + ifeq ($(HOST),$(BUILD)) + # Native build: we need perl, autoconf, etc first +- all: .perl .autoconf .automake .libtool .iconv .intl .freetype .fribidi \ ++ all: .libtool .iconv .intl .freetype .fribidi \ + .a52 .mpeg2 .id3tag .mad .ogg .vorbis .vorbisenc .theora \ +- .FLAC .speex .faad .faac .lame .ebml .matroska .ffmpeg .dvdcss \ ++ .faad .lame .ebml .matroska .dvdcss \ + .dvdnav .dvbpsi .aclocal .libdca + else + # Cross compiling: we already have the Linux tools, only build the +diff -urN vlc-0.8.6i/include/vlc_threads.h vlc-0.8.6i-haiku/include/vlc_threads.h +--- vlc-0.8.6i/include/vlc_threads.h 2009-02-18 15:16:01.000000000 +0000 ++++ vlc-0.8.6i-haiku/include/vlc_threads.h 2009-02-21 17:59:20.000000000 +0000 +@@ -45,7 +45,7 @@ + #elif defined( HAVE_KERNEL_SCHEDULER_H ) /* BeOS */ + # include + # include +-# include ++# include + + #elif defined( PTHREAD_COND_T_IN_PTHREAD_H ) /* pthreads (like Linux & BSD) */ + # include +diff -urN vlc-0.8.6i/modules/codec/telx.c vlc-0.8.6i-haiku/modules/codec/telx.c +--- vlc-0.8.6i/modules/codec/telx.c 2009-02-18 15:15:33.000000000 +0000 ++++ vlc-0.8.6i-haiku/modules/codec/telx.c 2009-02-18 15:14:10.000000000 +0000 +@@ -27,7 +27,7 @@ + *****************************************************************************/ + #include + #include +-#include ++#include + + #include + #include +@@ -450,7 +450,7 @@ + vlc_bool_t b_update = VLC_FALSE; + char psz_text[512], *pt = psz_text; + char psz_line[256]; +- int i, total; ++ int i, total, mpag, row, magazine; + + if( pp_block == NULL || *pp_block == NULL ) return NULL; + p_block = *pp_block; +@@ -473,8 +473,7 @@ + /* continue; */ + /* } */ + +- int mpag = (hamming_8_4( packet[4] ) << 4) | hamming_8_4( packet[5] ); +- int row, magazine; ++ mpag = (hamming_8_4( packet[4] ) << 4) | hamming_8_4( packet[5] ); + if ( mpag < 0 ) + { + /* decode error */ +diff -urN vlc-0.8.6i/modules/gui/beos/InterfaceWindow.cpp vlc-0.8.6i-haiku/modules/gui/beos/InterfaceWindow.cpp +--- vlc-0.8.6i/modules/gui/beos/InterfaceWindow.cpp 2009-02-18 15:15:26.000000000 +0000 ++++ vlc-0.8.6i-haiku/modules/gui/beos/InterfaceWindow.cpp 2009-02-18 15:13:51.000000000 +0000 +@@ -319,10 +319,8 @@ + + /* Add the Show menu */ + fShowMenu = new BMenu( _("Window") ); +-#if 0 + ADD_ELLIPSIS( _("Playlist") ); + fShowMenu->AddItem( new BMenuItem( psz_tmp, new BMessage( OPEN_PLAYLIST ), 'P') ); +-#endif + ADD_ELLIPSIS( _("Messages") ); + fShowMenu->AddItem( new BMenuItem( psz_tmp, new BMessage( OPEN_MESSAGES ), 'M' ) ); + ADD_ELLIPSIS( _("Preferences") ); diff -urN vlc-0.8.6i/src/input/input.c vlc-0.8.6i-haiku/src/input/input.c ---- vlc-0.8.6i/src/input/input.c 2008-07-08 14:08:36.000000000 -0700 -+++ vlc-0.8.6i-haiku/src/input/input.c 2008-08-14 06:52:18.000000000 -0700 +--- vlc-0.8.6i/src/input/input.c 2009-02-18 15:15:13.000000000 +0000 ++++ vlc-0.8.6i-haiku/src/input/input.c 2009-02-21 18:02:02.000000000 +0000 @@ -1886,7 +1886,7 @@ { vlc_meta_t *p_meta = p_input->p_meta; @@ -18,41 +251,115 @@ diff -urN vlc-0.8.6i/src/input/input.c vlc-0.8.6i-haiku/src/input/input.c if( asprintf( &psz_cat, "%s %d", _("Stream"), i ) != -1 ) { for( j = 0; j < tk->i_meta; j++ ) -diff -urN vlc-0.8.6i/src/network/httpd.c vlc-0.8.6i-haiku/src/network/httpd.c ---- vlc-0.8.6i/src/network/httpd.c 2008-07-08 14:08:36.000000000 -0700 -+++ vlc-0.8.6i-haiku/src/network/httpd.c 2008-08-14 07:07:11.000000000 -0700 -@@ -366,6 +366,7 @@ +diff -urN vlc-0.8.6i/src/misc/threads.c vlc-0.8.6i-haiku/src/misc/threads.c +--- vlc-0.8.6i/src/misc/threads.c 2009-02-18 15:15:12.000000000 +0000 ++++ vlc-0.8.6i-haiku/src/misc/threads.c 2009-02-21 18:45:41.000000000 +0000 +@@ -524,7 +524,7 @@ { - httpd_file_t *file = (httpd_file_t*)p_sys; + int i_ret; + void *p_data = (void *)p_this; +- ++/* + vlc_mutex_lock( &p_this->object_lock ); + + #if defined( PTH_INIT_IN_PTH_H ) +@@ -538,10 +538,11 @@ + #elif defined( WIN32 ) || defined( UNDER_CE ) + { + unsigned threadID; +- /* When using the MSVCRT C library you have to use the _beginthreadex ++*/ /* When using the MSVCRT C library you have to use the _beginthreadex + * function instead of CreateThread, otherwise you'll end up with + * memory leaks and the signal functions not working (see Microsoft + * Knowledge Base, article 104641) */ ++/* + p_this->thread_id = + #if defined( UNDER_CE ) + (HANDLE)CreateThread( NULL, 0, (PTHREAD_START) func, +@@ -636,7 +637,7 @@ + psz_name, psz_file, i_line, strerror(i_ret) ); + vlc_mutex_unlock( &p_this->object_lock ); + } +- ++*/ + return i_ret; + } + +@@ -647,6 +648,7 @@ + int __vlc_thread_set_priority( vlc_object_t *p_this, char * psz_file, + int i_line, int i_priority ) + { ++/* + #if defined( PTH_INIT_IN_PTH_H ) || defined( ST_INIT_IN_ST_H ) + #elif defined( WIN32 ) || defined( UNDER_CE ) + if( !SetThreadPriority(GetCurrentThread(), i_priority) ) +@@ -689,7 +691,7 @@ + } + } + #endif +- ++*/ + return 0; + } + +diff -urN vlc-0.8.6i/src/misc/vlm.c vlc-0.8.6i-haiku/src/misc/vlm.c +--- vlc-0.8.6i/src/misc/vlm.c 2009-02-18 15:15:12.000000000 +0000 ++++ vlc-0.8.6i-haiku/src/misc/vlm.c 2009-02-21 18:53:35.000000000 +0000 +@@ -1368,10 +1368,10 @@ + + vlm_schedule_t *vlm_ScheduleNew( vlm_t *vlm, const char *psz_name ) + { ++ vlm_schedule_t *p_sched = malloc( sizeof( vlm_schedule_t ) ); + if( !psz_name ) + return NULL; + +- vlm_schedule_t *p_sched = malloc( sizeof( vlm_schedule_t ) ); + if( !p_sched ) + return NULL; + +diff -urN vlc-0.8.6i/src/network/httpd.c vlc-0.8.6i-haiku/src/network/httpd.c +--- vlc-0.8.6i/src/network/httpd.c 2009-02-18 15:15:13.000000000 +0000 ++++ vlc-0.8.6i-haiku/src/network/httpd.c 2009-02-21 18:25:54.000000000 +0000 +@@ -60,6 +60,10 @@ + #define HTTPD_CL_BUFSIZE 10000 + #endif + ++ ++#include ++ ++ + static void httpd_ClientClean( httpd_client_t *cl ); + + struct httpd_url_t +@@ -368,6 +372,7 @@ uint8_t **pp_body, *p_body; -+ uint8_t *psz_args = 0; char *psz_connection = NULL; int *pi_body, i_body; ++ uint8_t *psz_args = query->psz_args; -@@ -402,7 +403,8 @@ + if( answer == NULL || query == NULL ) + { +@@ -402,7 +407,6 @@ /* msg_Warn not supported */ } - uint8_t *psz_args = query->psz_args; -+ *psz_args = query->psz_args; -+ file->pf_fill( file->p_sys, file, psz_args, pp_body, pi_body ); if( query->i_type == HTTPD_MSG_HEAD && p_body != NULL ) -@@ -487,6 +489,7 @@ +@@ -487,6 +491,7 @@ { httpd_handler_t *handler = (httpd_handler_t*)p_sys; char psz_remote_addr[NI_MAXNUMERICHOST]; -+ uint8_t *psz_args = 0; ++ uint8_t *psz_args = query->psz_args; if( answer == NULL || query == NULL ) { -@@ -502,7 +505,7 @@ +@@ -502,7 +507,6 @@ if( httpd_ClientIP( cl, psz_remote_addr ) == NULL ) *psz_remote_addr = '\0'; - uint8_t *psz_args = query->psz_args; -+ *psz_args = query->psz_args; handler->pf_fill( handler->p_sys, handler, query->psz_url, psz_args, query->i_type, query->p_body, query->i_body, psz_remote_addr, NULL,