From cbb17e64e11a3c8674a108d62eab9d6544c682f0 Mon Sep 17 00:00:00 2001 From: Cian Duffy Date: Tue, 31 Jul 2012 21:08:23 +0000 Subject: [PATCH] This .patch/.bep will build a "fully functioning" command line VLC. As in it does nothing as we have no interface/audio/video out. But it passes tests and has a working libvlc. Only tested building on a GCC4 system, not a gcc2hybrid yet. Need to fix gettext-dev before I can fully populate the .bep with every depdendency to ensure full functionality will build for everyone. --- media-video/vlc/patches/vlc-2.0.3.patch | 177 ++++++++++++++++++++++++ media-video/vlc/vlc-2.0.3.bep | 3 +- 2 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 media-video/vlc/patches/vlc-2.0.3.patch diff --git a/media-video/vlc/patches/vlc-2.0.3.patch b/media-video/vlc/patches/vlc-2.0.3.patch new file mode 100644 index 000000000..9649f9112 --- /dev/null +++ b/media-video/vlc/patches/vlc-2.0.3.patch @@ -0,0 +1,177 @@ +--- vlc-2.0.3-orig/src/modules/bank.c 2011-12-08 18:00:28.032243712 +0000 ++++ vlc-2.0.3/src/modules/bank.c 2012-07-30 22:00:12.285736960 +0000 +@@ -71,28 +71,30 @@ + modules.head = module; + } + +-#ifdef __ELF__ +-# ifdef __GNUC__ +-__attribute__((weak)) +-# else +-# pragma weak vlc_static_modules +-# endif +-extern vlc_plugin_cb vlc_static_modules[]; +- +-static void module_InitStaticModules(void) +-{ +- if (!vlc_static_modules) +- return; +- +- for (unsigned i = 0; vlc_static_modules[i]; i++) { +- module_t *module = module_InitStatic (vlc_static_modules[i]); +- if (likely(module != NULL)) +- module_StoreBank (module); +- } +-} +-#else ++//Haiku bug #8288 ++//#ifdef __ELF__ ++//# ifdef __GNUC__ ++//__attribute__((weak)) ++//# else ++//# pragma weak vlc_static_modules ++//# endif ++//extern vlc_plugin_cb vlc_static_modules[]; ++// ++//static void module_InitStaticModules(void) ++//{ ++// if (!vlc_static_modules) ++// return; ++// ++// for (unsigned i = 0; vlc_static_modules[i]; i++) { ++// module_t *module = module_InitStatic (vlc_static_modules[i]); ++// if (likely(module != NULL)) ++// module_StoreBank (module); ++// } ++//} ++//#else + static void module_InitStaticModules(void) { } +-#endif ++//#endif ++ + + /** + * Init bank +--- vlc-2.0.3-orig/include/vlc_threads.h 2012-01-27 23:03:32.051904512 +0000 ++++ vlc-2.0.3/include/vlc_threads.h 2012-07-30 22:08:53.845414400 +0000 +@@ -124,7 +124,13 @@ + typedef pthread_cond_t vlc_cond_t; + #define VLC_STATIC_COND PTHREAD_COND_INITIALIZER + typedef pthread_rwlock_t vlc_rwlock_t; ++// Haiku bug #8798 ++#ifdef __HAIKU__ ++#define VLC_STATIC_RWLOCK \ ++ { VLC_STATIC_MUTEX, VLC_STATIC_COND, 0, 0, 0 } ++#else + #define VLC_STATIC_RWLOCK PTHREAD_RWLOCK_INITIALIZER ++#endif + typedef pthread_key_t vlc_threadvar_t; + typedef struct vlc_timer *vlc_timer_t; + +--- vlc-2.0.3-orig/configure.ac 2012-07-03 22:55:34.062652416 +0000 ++++ vlc-2.0.3/configure.ac 2012-07-31 20:34:45.277610496 +0000 +@@ -279,11 +279,16 @@ + SYS=os2 + LDFLAGS_save="${LDFLAGS_save} -Zomf -Zbin-files -Zargs-wild"; LDFLAGS="${LDFLAGS_save}" + ;; ++ *haiku*) ++ SYS=haiku ++ VLC_ADD_LIBS([libvlccore libvlc vlc],[-lnetwork]) ++ ;; + *) + SYS="${host_os}" + ;; + esac + AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin") ++AM_CONDITIONAL(HAVE_HAIKU, test "${SYS}" = "haiku") + AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux") + AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2") + AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32") +@@ -513,10 +518,13 @@ + dnl Check for system libs needed + need_libc=false + ++#this fails to detect that we have if_nameindex and if_nametoindex on haiku ++#and then it dails to detect that we don't have tdestroy... ++ + dnl Check for usual libc functions + AC_CHECK_DECLS([nanosleep],,,[#include ]) + AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r if_nameindex if_nametoindex isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale]) +-AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy]) ++AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab]) + AC_CHECK_FUNCS(fdatasync,, + [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) + ]) +@@ -578,6 +586,9 @@ + AS_IF([test "${SYS}" = "mingwce"], [ + SOCKET_LIBS="-lws2" + ]) ++ AS_IF([test "${SYS}" = "haiku"], [ ++ SOCKET_LIBS="-lnetwork" ++ ]) + ]) + LIBS="$LIBS_save" + AS_IF([test -n "$SOCKET_LIBS"], [ +@@ -4162,7 +4173,7 @@ + dnl Stuff used by the program + dnl + VERSION_MESSAGE="${VERSION} ${CODENAME}" +-COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} VLC authors and VideoLAN" ++COPYRIGHT_MESSAGE="Copyright (C) ${COPYRIGHT_YEARS} VLC authors and VideoLAN" + AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string]) + AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string]) + AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years]) + +--- vlc-2.0.3-orig/include/vlc_fixups.h 2012-01-30 21:37:14.052428800 +0000 ++++ vlc-2.0.3/include/vlc_fixups.h 2012-07-30 22:21:46.086245376 +0000 +@@ -246,10 +246,13 @@ + #endif + + /* Socket stuff */ ++// configure doesn't detect these, likely not linking to -lnetwork, must investigate ++#ifndef __HAIKU__ + #ifndef HAVE_INET_PTON + int inet_pton(int, const char *, void *); + const char *inet_ntop(int, const void *, char *, int); + #endif ++#endif + + #ifndef HAVE_STRUCT_POLLFD + enum +@@ -276,6 +279,8 @@ + # define poll(a, b, c) vlc_poll(a, b, c) + #endif + ++// or these ++#ifndef __HAIKU__ + #ifndef HAVE_IF_NAMEINDEX + #include + struct if_nameindex +@@ -289,6 +294,7 @@ + # define if_nameindex() (errno = ENOBUFS, NULL) + # define if_freenameindex(list) (void)0 + #endif ++#endif + + /* search.h */ + #ifndef HAVE_SEARCH_H +--- vlc-2.0.3-orig/bin/override.c 2011-12-08 18:00:25.033554432 +0000 ++++ vlc-2.0.3/bin/override.c 2012-07-31 20:19:54.136314880 +0000 +@@ -124,6 +124,8 @@ + * + * Some evil libraries modify the environment. We currently ignore the calls as + * they could crash the process. This may cause funny behaviour though. */ ++#ifndef __HAIKU__ ++//not working + int putenv (char *str) + { + if (override) +@@ -133,7 +135,7 @@ + } + return CALL(putenv, str); + } +- ++#endif + int setenv (const char *name, const char *value, int overwrite) + { + if (override) diff --git a/media-video/vlc/vlc-2.0.3.bep b/media-video/vlc/vlc-2.0.3.bep index b6d4c34ab..d17351d13 100644 --- a/media-video/vlc/vlc-2.0.3.bep +++ b/media-video/vlc/vlc-2.0.3.bep @@ -20,7 +20,8 @@ DEPEND="faad2, CHECKSUM_MD5="a7e79565e3df07dcf9abc6cad3ac26bb" BUILD { cd vlc-2.0.3 - ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-sdl=no --with-kde-solid=no --disable-xcb + bootstrap + ./configure --prefix=`finddir B_COMMON_DIRECTORY` --enable-sdl=no --with-kde-solid=no --disable-xcb --enable-run-as-root make }