parent
fbbd4b8da8
commit
97e540d914
@ -0,0 +1,629 @@
|
||||
From 9e081cd4a04e3326d4927aa082695f15432590e2 Mon Sep 17 00:00:00 2001
|
||||
From: Maarten Lankhorst <maarten.lankhorst@canonical.com>
|
||||
Date: Thu, 14 Aug 2014 11:49:20 +0200
|
||||
Subject: [PATCH] TESTING -- override pthreads to fix gstreamer v4
|
||||
|
||||
I believe the code is ready and will work properly now in all cases.
|
||||
but please test before cherry picking this patch, and report
|
||||
success or failure to me please.
|
||||
|
||||
Changes since v1:
|
||||
- Call pthread_yield to make sure that we link against libpthread.
|
||||
This fixes the build on saucy.
|
||||
Changes since v2:
|
||||
- Set thread_data->detached before creating the thread to prevent
|
||||
a race condition.
|
||||
Changes since v3:
|
||||
- Set thread_data->detached CORRECTLY. Fix a small race between
|
||||
thread creation and pthread_detach.
|
||||
---
|
||||
dlls/ntdll/ntdll_misc.h | 3 +
|
||||
dlls/ntdll/thread.c | 307 +++++++++++++++++++++++++++++++++++++--
|
||||
dlls/winegstreamer/glibthread.c | 13 ++
|
||||
libs/wine/loader.c | 7 +
|
||||
libs/wine/wine.map | 6 +
|
||||
loader/Makefile.in | 2 +-
|
||||
loader/main.c | 41 +++++
|
||||
7 files changed, 362 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 4370084..1af819b 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "winnt.h"
|
||||
#include "winternl.h"
|
||||
#include "wine/server.h"
|
||||
+#include "wine/list.h"
|
||||
|
||||
#define MAX_NT_PATH_LENGTH 277
|
||||
|
||||
@@ -235,6 +236,8 @@ struct ntdll_thread_data
|
||||
WINE_VM86_TEB_INFO vm86; /* 1fc vm86 private data */
|
||||
void *exit_frame; /* 204 exit frame pointer */
|
||||
#endif
|
||||
+ struct list entry;
|
||||
+ BOOL detached;
|
||||
};
|
||||
|
||||
static inline struct ntdll_thread_data *ntdll_get_thread_data(void)
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index c8461b0..8d5470e 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#ifdef HAVE_SYS_SYSCALL_H
|
||||
#include <sys/syscall.h>
|
||||
#endif
|
||||
+#include <errno.h>
|
||||
|
||||
#define NONAMELESSUNION
|
||||
#include "ntstatus.h"
|
||||
@@ -58,6 +59,7 @@ struct startup_info
|
||||
TEB *teb;
|
||||
PRTL_THREAD_START_ROUTINE entry_point;
|
||||
void *entry_arg;
|
||||
+ BOOL native_thread;
|
||||
};
|
||||
|
||||
static PEB *peb;
|
||||
@@ -202,6 +204,78 @@ static ULONG get_dyld_image_info_addr(void)
|
||||
}
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
+#ifdef __linux__
|
||||
+extern typeof(pthread_create) *__glob_pthread_create, *call_pthread_create;
|
||||
+extern typeof(pthread_join) *__glob_pthread_join, *call_pthread_join;
|
||||
+extern typeof(pthread_detach) *__glob_pthread_detach, *call_pthread_detach;
|
||||
+
|
||||
+static typeof(pthread_create) __hook_pthread_create;
|
||||
+static typeof(pthread_join) __hook_pthread_join;
|
||||
+static typeof(pthread_detach) __hook_pthread_detach;
|
||||
+
|
||||
+static pthread_mutex_t thread_lock;
|
||||
+
|
||||
+static void thread_wrap_init(void)
|
||||
+{
|
||||
+ pthread_mutexattr_t attr;
|
||||
+ pthread_mutexattr_init(&attr);
|
||||
+ pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);
|
||||
+ pthread_mutex_init(&thread_lock, &attr);
|
||||
+ pthread_mutexattr_destroy(&attr);
|
||||
+
|
||||
+ call_pthread_create = __hook_pthread_create;
|
||||
+ call_pthread_join = __hook_pthread_join;
|
||||
+ call_pthread_detach = __hook_pthread_detach;
|
||||
+}
|
||||
+
|
||||
+static TEB *dead_teb;
|
||||
+static struct list active_list = LIST_INIT(active_list);
|
||||
+
|
||||
+static void take_thread_lock(void)
|
||||
+{
|
||||
+ int ret = pthread_mutex_lock(&thread_lock);
|
||||
+ if (ret == EOWNERDEAD)
|
||||
+ pthread_mutex_consistent(&thread_lock);
|
||||
+}
|
||||
+
|
||||
+static void detach_thread_unlock(TEB *own_teb)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data;
|
||||
+ TEB *teb = dead_teb;
|
||||
+
|
||||
+ dead_teb = own_teb;
|
||||
+
|
||||
+ pthread_mutex_unlock(&thread_lock);
|
||||
+ if (!teb)
|
||||
+ return;
|
||||
+
|
||||
+ thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
+ __glob_pthread_join(thread_data->pthread_id, NULL);
|
||||
+ signal_free_thread(teb);
|
||||
+}
|
||||
+
|
||||
+static void reap_thread(TEB *teb)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
+ take_thread_lock();
|
||||
+ if (thread_data->detached)
|
||||
+ detach_thread_unlock(teb);
|
||||
+ else {
|
||||
+ /*
|
||||
+ * Do not unlock, wait until the thread is thoroughly dead.
|
||||
+ * This prevents a race condition where detach is called
|
||||
+ * after the thread has not finished dying yet.
|
||||
+ */
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+#define __glob_pthread_create pthread_create
|
||||
+#define __glob_pthread_join pthread_join
|
||||
+#define __glob_pthread_detach pthread_detach
|
||||
+#define thread_wrap_init()
|
||||
+#endif
|
||||
+
|
||||
/***********************************************************************
|
||||
* thread_init
|
||||
*
|
||||
@@ -220,6 +294,7 @@ HANDLE thread_init(void)
|
||||
struct ntdll_thread_data *thread_data;
|
||||
static struct debug_info debug_info; /* debug info for initial thread */
|
||||
|
||||
+ thread_wrap_init();
|
||||
virtual_init();
|
||||
|
||||
/* reserve space for shared user data */
|
||||
@@ -349,14 +424,12 @@ void terminate_thread( int status )
|
||||
pthread_exit( UIntToPtr(status) );
|
||||
}
|
||||
|
||||
-
|
||||
-/***********************************************************************
|
||||
- * exit_thread
|
||||
- */
|
||||
-void exit_thread( int status )
|
||||
+static void exit_thread_common( int status )
|
||||
{
|
||||
+#ifndef __linux__
|
||||
static void *prev_teb;
|
||||
TEB *teb;
|
||||
+#endif
|
||||
|
||||
if (status) /* send the exit code to the server (0 is already the default) */
|
||||
{
|
||||
@@ -380,24 +453,177 @@ void exit_thread( int status )
|
||||
|
||||
pthread_sigmask( SIG_BLOCK, &server_block_set, NULL );
|
||||
|
||||
+#ifndef __linux__
|
||||
if ((teb = interlocked_xchg_ptr( &prev_teb, NtCurrentTeb() )))
|
||||
{
|
||||
struct ntdll_thread_data *thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
|
||||
if (thread_data->pthread_id)
|
||||
{
|
||||
- pthread_join( thread_data->pthread_id, NULL );
|
||||
+ __glob_pthread_join( thread_data->pthread_id, NULL );
|
||||
signal_free_thread( teb );
|
||||
}
|
||||
}
|
||||
+#else
|
||||
+ reap_thread(NtCurrentTeb());
|
||||
+#endif
|
||||
|
||||
close( ntdll_get_thread_data()->wait_fd[0] );
|
||||
close( ntdll_get_thread_data()->wait_fd[1] );
|
||||
close( ntdll_get_thread_data()->reply_fd );
|
||||
close( ntdll_get_thread_data()->request_fd );
|
||||
+}
|
||||
+
|
||||
+void exit_thread( int status )
|
||||
+{
|
||||
+ exit_thread_common(status);
|
||||
pthread_exit( UIntToPtr(status) );
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+struct unix_arg {
|
||||
+ void *(*start)(void *);
|
||||
+ void *arg;
|
||||
+};
|
||||
+
|
||||
+/* dummy used for comparison */
|
||||
+static DWORD native_unix_start;
|
||||
+
|
||||
+static void call_native_cleanup(void *arg)
|
||||
+{
|
||||
+ exit_thread_common(0);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+__hook_pthread_create(pthread_t *thread, const pthread_attr_t *attr,
|
||||
+ void *(*start_routine) (void *), void *parm)
|
||||
+{
|
||||
+ NTSTATUS ret;
|
||||
+ pthread_t tid;
|
||||
+ size_t stack = 8 * 1024 * 1024;
|
||||
+ struct unix_arg arg;
|
||||
+ arg.start = start_routine;
|
||||
+ arg.arg = parm;
|
||||
+
|
||||
+ if (!thread)
|
||||
+ thread = &tid;
|
||||
+
|
||||
+ TRACE("Overriding thread creation!\n");
|
||||
+ if (attr) {
|
||||
+ static int once;
|
||||
+ if (!once++)
|
||||
+ FIXME("most thread attributes ignored!\n");
|
||||
+ else
|
||||
+ WARN("most thread attributes ignored!\n");
|
||||
+
|
||||
+ pthread_attr_getstacksize(attr, &stack);
|
||||
+ }
|
||||
+
|
||||
+ ret = RtlCreateUserThread( NtCurrentProcess(), NULL, FALSE, NULL, stack, 0, (void*)&native_unix_start, &arg, NULL, (void*)thread );
|
||||
+ if (ret != STATUS_SUCCESS)
|
||||
+ FIXME("ret: %08x\n", ret);
|
||||
+ switch (ret) {
|
||||
+ case STATUS_SUCCESS:
|
||||
+ TRACE("created thread %lx for %p/%p\n", *thread, start_routine, parm);
|
||||
+ return 0;
|
||||
+ case STATUS_NO_MEMORY:
|
||||
+ return ENOMEM;
|
||||
+ case STATUS_TOO_MANY_OPENED_FILES:
|
||||
+ return EMFILE;
|
||||
+ default:
|
||||
+ ERR("Unhandled ntstatus %08x\n", ret);
|
||||
+ return ENOMEM;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __hook_pthread_detach(pthread_t thread)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data;
|
||||
+ TEB *teb = NULL;
|
||||
+
|
||||
+ if (pthread_equal(thread, pthread_self())) {
|
||||
+ TRACE("Detached self: %lx\n", pthread_self());
|
||||
+ ntdll_get_thread_data()->detached = 1;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ LIST_FOR_EACH_ENTRY(thread_data, &active_list, typeof(*thread_data), entry) {
|
||||
+ if (pthread_equal(thread_data->pthread_id, thread)) {
|
||||
+ teb = CONTAINING_RECORD(thread_data, typeof(*teb), SpareBytes1);
|
||||
+
|
||||
+ list_remove(&thread_data->entry);
|
||||
+ if (!pthread_tryjoin_np(thread, NULL)) {
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ TRACE("Thread %lx was dead, cleaning up\n", thread);
|
||||
+ signal_free_thread(teb);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ thread_data->detached = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ if (!teb)
|
||||
+ TRACE("Could not find thread %lx to detach\n", thread);
|
||||
+ else
|
||||
+ TRACE("Changed thread %lx to detached\n", thread);
|
||||
+ return teb ? 0 : ESRCH;
|
||||
+}
|
||||
+
|
||||
+static int __hook_pthread_join(pthread_t thread, void **retval)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data, *t2;
|
||||
+ int ret = ESRCH;
|
||||
+
|
||||
+ if (pthread_equal(thread, pthread_self()))
|
||||
+ return EDEADLK;
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ LIST_FOR_EACH_ENTRY(thread_data, &active_list, typeof(*thread_data), entry) {
|
||||
+ TEB *teb = CONTAINING_RECORD(thread_data, typeof(*teb), SpareBytes1);
|
||||
+
|
||||
+ if (pthread_equal(thread, thread_data->pthread_id)) {
|
||||
+
|
||||
+ ret = pthread_tryjoin_np(thread, retval);
|
||||
+ if (!ret) {
|
||||
+ TRACE("Thread %lx was dead fastpath, cleaning up\n", thread);
|
||||
+ goto free;
|
||||
+ }
|
||||
+ detach_thread_unlock(NULL);
|
||||
+
|
||||
+ ret = __glob_pthread_join(thread, retval);
|
||||
+ if (ret) {
|
||||
+ TRACE("Thread %lx join failed with %i, ignoring\n", thread, ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ /* Check if someone else freed the thread yet */
|
||||
+ LIST_FOR_EACH_ENTRY(t2, &active_list, typeof(*thread_data), entry)
|
||||
+ if (t2 == thread_data) {
|
||||
+ TRACE("Cleaning up after successful join\n");
|
||||
+ goto free;
|
||||
+ }
|
||||
+ TRACE("No clean up after successful join, multiple pthread_join's?\n");
|
||||
+ break;
|
||||
+
|
||||
+free:
|
||||
+ list_remove(&thread_data->entry);
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ signal_free_thread(teb);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ if (ret)
|
||||
+ TRACE("failed with %i\n", ret);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
|
||||
/***********************************************************************
|
||||
* start_thread
|
||||
@@ -426,9 +652,19 @@ static void start_thread( struct startup_info *info )
|
||||
if (TRACE_ON(relay))
|
||||
DPRINTF( "%04x:Starting thread proc %p (arg=%p)\n", GetCurrentThreadId(), func, arg );
|
||||
|
||||
- call_thread_entry_point( (LPTHREAD_START_ROUTINE)func, arg );
|
||||
-}
|
||||
+#ifdef __linux__
|
||||
+ if (info->native_thread) {
|
||||
+ void *(*start)(void*) = (void*)func;
|
||||
|
||||
+ FIXME("Started native thread %08x\n", GetCurrentThreadId());
|
||||
+ pthread_cleanup_push(call_native_cleanup, NULL);
|
||||
+ pthread_exit(start(arg));
|
||||
+ pthread_cleanup_pop(1);
|
||||
+ return;
|
||||
+ }
|
||||
+#endif
|
||||
+ call_thread_entry_point( (LPTHREAD_START_ROUTINE)func, arg );
|
||||
+}
|
||||
|
||||
/***********************************************************************
|
||||
* RtlCreateUserThread (NTDLL.@)
|
||||
@@ -440,14 +676,13 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
HANDLE *handle_ptr, CLIENT_ID *id )
|
||||
{
|
||||
sigset_t sigset;
|
||||
- pthread_t pthread_id;
|
||||
pthread_attr_t attr;
|
||||
struct ntdll_thread_data *thread_data;
|
||||
struct startup_info *info = NULL;
|
||||
HANDLE handle = 0, actctx = 0;
|
||||
TEB *teb = NULL;
|
||||
DWORD tid = 0;
|
||||
- int request_pipe[2];
|
||||
+ int request_pipe[2], ret;
|
||||
NTSTATUS status;
|
||||
|
||||
if (process != NtCurrentProcess())
|
||||
@@ -472,10 +707,14 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
if (handle_ptr) *handle_ptr = wine_server_ptr_handle( result.create_thread.handle );
|
||||
else NtClose( wine_server_ptr_handle( result.create_thread.handle ));
|
||||
}
|
||||
+ TRACE("CreateThread for other process returns %08x\n", result.create_thread.status);
|
||||
return result.create_thread.status;
|
||||
}
|
||||
|
||||
- if (server_pipe( request_pipe ) == -1) return STATUS_TOO_MANY_OPENED_FILES;
|
||||
+ if (server_pipe( request_pipe ) == -1) {
|
||||
+ TRACE("CreateThread cannot create request pipe: %m\n");
|
||||
+ return STATUS_TOO_MANY_OPENED_FILES;
|
||||
+ }
|
||||
wine_server_send_fd( request_pipe[0] );
|
||||
|
||||
SERVER_START_REQ( new_thread )
|
||||
@@ -496,12 +735,16 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
if (status)
|
||||
{
|
||||
close( request_pipe[1] );
|
||||
+ TRACE("CreateThread server request failed with %08x\n", status);
|
||||
return status;
|
||||
}
|
||||
|
||||
pthread_sigmask( SIG_BLOCK, &server_block_set, &sigset );
|
||||
|
||||
- if ((status = signal_alloc_thread( &teb ))) goto error;
|
||||
+ if ((status = signal_alloc_thread( &teb ))) {
|
||||
+ TRACE("CreateThread signal thread allocation failed with %08x\n", status);
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
teb->Peb = NtCurrentTeb()->Peb;
|
||||
teb->ClientId.UniqueProcess = ULongToHandle(GetCurrentProcessId());
|
||||
@@ -524,32 +767,64 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
|
||||
info = (struct startup_info *)(teb + 1);
|
||||
info->teb = teb;
|
||||
- info->entry_point = start;
|
||||
- info->entry_arg = param;
|
||||
+#ifdef __linux__
|
||||
+ info->native_thread = (void*)start == (void*)&native_unix_start;
|
||||
+ if (info->native_thread) {
|
||||
+ struct unix_arg *arg = param;
|
||||
+ info->entry_point = (void*)arg->start;
|
||||
+ info->entry_arg = arg->arg;
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
+ info->entry_point = start;
|
||||
+ info->entry_arg = param;
|
||||
+ }
|
||||
|
||||
thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
+#ifdef __linux__
|
||||
+ thread_data->detached = !info->native_thread;
|
||||
+#endif
|
||||
thread_data->request_fd = request_pipe[1];
|
||||
thread_data->reply_fd = -1;
|
||||
thread_data->wait_fd[0] = -1;
|
||||
thread_data->wait_fd[1] = -1;
|
||||
+ thread_data->entry.next = NULL;
|
||||
|
||||
- if ((status = virtual_alloc_thread_stack( teb, stack_reserve, stack_commit ))) goto error;
|
||||
+ if ((status = virtual_alloc_thread_stack( teb, stack_reserve ?: (8 << 20), stack_commit ?: (1 << 20) ))) {
|
||||
+ TRACE("Allocating virtual stack for %p (%li/%li) failed with %08x\n", start, stack_reserve, stack_commit, status);
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
pthread_attr_init( &attr );
|
||||
pthread_attr_setstack( &attr, teb->DeallocationStack,
|
||||
(char *)teb->Tib.StackBase - (char *)teb->DeallocationStack );
|
||||
pthread_attr_setscope( &attr, PTHREAD_SCOPE_SYSTEM ); /* force creating a kernel thread */
|
||||
interlocked_xchg_add( &nb_threads, 1 );
|
||||
- if (pthread_create( &pthread_id, &attr, (void * (*)(void *))start_thread, info ))
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ ret = __glob_pthread_create( &thread_data->pthread_id, &attr, (void * (*)(void *))start_thread, info );
|
||||
+ if (ret)
|
||||
{
|
||||
+ TRACE("pthread create failed with %i/%m\n", ret);
|
||||
interlocked_xchg_add( &nb_threads, -1 );
|
||||
pthread_attr_destroy( &attr );
|
||||
status = STATUS_NO_MEMORY;
|
||||
goto error;
|
||||
}
|
||||
+ if (!thread_data->detached)
|
||||
+ list_add_tail(&active_list, &thread_data->entry);
|
||||
+ detach_thread_unlock(NULL);
|
||||
+
|
||||
pthread_attr_destroy( &attr );
|
||||
pthread_sigmask( SIG_SETMASK, &sigset, NULL );
|
||||
|
||||
+ TRACE("Created thread succesfully, win handle: %04x, pthread: %lx\n", tid, thread_data->pthread_id);
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+ if ((void*)start == (void*)&native_unix_start && id)
|
||||
+ *(pthread_t*)id = thread_data->pthread_id;
|
||||
+ else
|
||||
+#endif
|
||||
if (id) id->UniqueThread = ULongToHandle(tid);
|
||||
if (handle_ptr) *handle_ptr = handle;
|
||||
else NtClose( handle );
|
||||
diff --git a/dlls/winegstreamer/glibthread.c b/dlls/winegstreamer/glibthread.c
|
||||
index 0d829a0..46e22f4 100644
|
||||
--- a/dlls/winegstreamer/glibthread.c
|
||||
+++ b/dlls/winegstreamer/glibthread.c
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
+#if 0
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winnls.h"
|
||||
@@ -388,3 +389,15 @@ void g_thread_impl_init (void)
|
||||
g_thread_self_tls = TlsAlloc ();
|
||||
g_thread_init(&g_thread_functions_for_glib_use_default);
|
||||
}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+void g_thread_impl_init (void)
|
||||
+{
|
||||
+ static gboolean beenhere = FALSE;
|
||||
+
|
||||
+ if (!beenhere++)
|
||||
+ g_thread_init(NULL);
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
|
||||
index 7261522..a8c31b9 100644
|
||||
--- a/libs/wine/loader.c
|
||||
+++ b/libs/wine/loader.c
|
||||
@@ -73,6 +73,13 @@ char **__wine_main_argv = NULL;
|
||||
WCHAR **__wine_main_wargv = NULL;
|
||||
char **__wine_main_environ = NULL;
|
||||
|
||||
+#ifdef __linux__
|
||||
+#include <pthread.h>
|
||||
+typeof(pthread_create) *call_pthread_create, *__glob_pthread_create;
|
||||
+typeof(pthread_join) *call_pthread_join, *__glob_pthread_join;
|
||||
+typeof(pthread_detach) *call_pthread_detach, *__glob_pthread_detach;
|
||||
+#endif
|
||||
+
|
||||
struct dll_path_context
|
||||
{
|
||||
unsigned int index; /* current index in the dll path list */
|
||||
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
|
||||
index 2159fac..fb3b951 100644
|
||||
--- a/libs/wine/wine.map
|
||||
+++ b/libs/wine/wine.map
|
||||
@@ -117,6 +117,12 @@ WINE_1.0
|
||||
wine_utf8_mbstowcs;
|
||||
wine_utf8_wcstombs;
|
||||
wine_wctype_table;
|
||||
+ __glob_pthread_create;
|
||||
+ call_pthread_create;
|
||||
+ __glob_pthread_join;
|
||||
+ call_pthread_join;
|
||||
+ __glob_pthread_detach;
|
||||
+ call_pthread_detach;
|
||||
|
||||
local: *;
|
||||
};
|
||||
diff --git a/loader/Makefile.in b/loader/Makefile.in
|
||||
index 95e4798..a18dd02 100644
|
||||
--- a/loader/Makefile.in
|
||||
+++ b/loader/Makefile.in
|
||||
@@ -1,4 +1,4 @@
|
||||
-EXTRALIBS = $(PTHREAD_LIBS)
|
||||
+EXTRALIBS = $(PTHREAD_LIBS) $(DL_LIBS)
|
||||
|
||||
C_SRCS = \
|
||||
main.c \
|
||||
diff --git a/loader/main.c b/loader/main.c
|
||||
index ac67290..76609e1 100644
|
||||
--- a/loader/main.c
|
||||
+++ b/loader/main.c
|
||||
@@ -202,6 +202,45 @@ static int pre_exec(void)
|
||||
|
||||
#endif
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+extern typeof(pthread_create) *call_pthread_create, *__glob_pthread_create;
|
||||
+extern typeof(pthread_detach) *call_pthread_detach, *__glob_pthread_detach;
|
||||
+extern typeof(pthread_join) *call_pthread_join, *__glob_pthread_join;
|
||||
+
|
||||
+int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
|
||||
+ void *(*start_routine) (void *), void *arg)
|
||||
+{
|
||||
+ return call_pthread_create(thread, attr, start_routine, arg);
|
||||
+}
|
||||
+
|
||||
+int pthread_detach(pthread_t thread)
|
||||
+{
|
||||
+ return call_pthread_detach(thread);
|
||||
+}
|
||||
+
|
||||
+int pthread_join(pthread_t thread, void **retval)
|
||||
+{
|
||||
+ return call_pthread_join(thread, retval);
|
||||
+}
|
||||
+
|
||||
+static void init_thread_hook(void) {
|
||||
+ call_pthread_create = __glob_pthread_create = dlvsym(RTLD_NEXT, "pthread_create", "GLIBC_2.2.5");
|
||||
+ if (!__glob_pthread_create)
|
||||
+ call_pthread_create = __glob_pthread_create = dlvsym(RTLD_NEXT, "pthread_create", "GLIBC_2.1");
|
||||
+
|
||||
+ call_pthread_detach = __glob_pthread_detach = dlsym(RTLD_NEXT, "pthread_detach");
|
||||
+ call_pthread_join = __glob_pthread_join = dlsym(RTLD_NEXT, "pthread_join");
|
||||
+
|
||||
+ /* Call a function from libpthread to ensure being linked against it */
|
||||
+ pthread_yield();
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#define init_thread_hook()
|
||||
+
|
||||
+#endif
|
||||
|
||||
/**********************************************************************
|
||||
* main
|
||||
@@ -211,6 +250,8 @@ int main( int argc, char *argv[] )
|
||||
char error[1024];
|
||||
int i;
|
||||
|
||||
+ init_thread_hook();
|
||||
+
|
||||
if (!getenv( "WINELOADERNOEXEC" )) /* first time around */
|
||||
{
|
||||
static char noexec[] = "WINELOADERNOEXEC=1";
|
||||
--
|
||||
1.7.6.6.GIT
|
||||
|
@ -0,0 +1,498 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.7.22.ebuild,v 1.1 2014/10/05 13:17:36 ryao Exp $
|
||||
|
||||
EAPI="5"
|
||||
|
||||
AUTOTOOLS_AUTORECONF=1
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools-utils eutils fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git"
|
||||
inherit git-2
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_/-}"
|
||||
SRC_URI="mirror://sourceforge/${PN}/Source/${MY_P}.tar.bz2"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
fi
|
||||
|
||||
GV="2.24"
|
||||
MV="4.5.2"
|
||||
PULSE_PATCHES="winepulse-patches-1.7.21"
|
||||
COMPHOLIOV="${PV}"
|
||||
COMPHOLIO_PATCHES="wine-compholio-${COMPHOLIOV}"
|
||||
WINE_GENTOO="wine-gentoo-2013.06.24"
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
||||
HOMEPAGE="http://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
gecko? (
|
||||
abi_x86_32? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86.msi )
|
||||
abi_x86_64? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86_64.msi )
|
||||
)
|
||||
mono? ( mirror://sourceforge/${PN}/Wine%20Mono/${MV}/wine-mono-${MV}.msi )
|
||||
pipelight? ( https://github.com/compholio/wine-compholio-daily/archive/v${COMPHOLIOV}.tar.gz -> ${COMPHOLIO_PATCHES}.tar.gz )
|
||||
pulseaudio? ( http://dev.gentoo.org/~tetromino/distfiles/${PN}/${PULSE_PATCHES}.tar.bz2 )
|
||||
http://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pipelight +png +prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype +udisks v4l +X xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
test? ( abi_x86_32 )
|
||||
elibc_glibc? ( threads )
|
||||
gstreamer? ( pulseaudio )
|
||||
mono? ( abi_x86_32 )
|
||||
osmesa? ( opengl )" #286560
|
||||
# winepulse patches needed for gstreamer due to http://bugs.winehq.org/show_bug.cgi?id=30557
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
NATIVE_DEPEND="
|
||||
truetype? ( >=media-libs/freetype-2.0.0 )
|
||||
capi? ( net-dialup/capi4k-utils )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
udisks? ( sys-apps/dbus )
|
||||
fontconfig? ( media-libs/fontconfig:= )
|
||||
gphoto2? ( media-libs/libgphoto2:= )
|
||||
openal? ( media-libs/openal:= )
|
||||
gstreamer? ( media-libs/gstreamer:0.10 media-libs/gst-plugins-base:0.10 )
|
||||
X? (
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXi
|
||||
x11-libs/libXxf86vm
|
||||
)
|
||||
xinerama? ( x11-libs/libXinerama )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups:= )
|
||||
opencl? ( virtual/opencl )
|
||||
opengl? (
|
||||
virtual/glu
|
||||
virtual/opengl
|
||||
)
|
||||
gsm? ( media-sound/gsm:= )
|
||||
jpeg? ( virtual/jpeg:0= )
|
||||
ldap? ( net-nds/openldap:= )
|
||||
lcms? ( media-libs/lcms:2= )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0 )
|
||||
netapi? ( net-fs/samba[netapi(+)] )
|
||||
nls? ( sys-devel/gettext )
|
||||
odbc? ( dev-db/unixODBC:= )
|
||||
osmesa? ( media-libs/mesa[osmesa] )
|
||||
pipelight? ( sys-apps/attr )
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
xml? ( dev-libs/libxml2 dev-libs/libxslt )
|
||||
scanner? ( media-gfx/sane-backends:= )
|
||||
ssl? ( net-libs/gnutls:= )
|
||||
png? ( media-libs/libpng:0= )
|
||||
v4l? ( media-libs/libv4l )
|
||||
xcomposite? ( x11-libs/libXcomposite )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
!amd64? ( ${NATIVE_DEPEND} )
|
||||
amd64? (
|
||||
abi_x86_64? ( ${NATIVE_DEPEND} )
|
||||
abi_x86_32? (
|
||||
truetype? ( || (
|
||||
>=app-emulation/emul-linux-x86-xlibs-2.1[development,-abi_x86_32(-)]
|
||||
>=media-libs/freetype-2.5.0.1[abi_x86_32(-)]
|
||||
) )
|
||||
ncurses? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-libs/ncurses-5.9-r3[abi_x86_32(-)]
|
||||
) )
|
||||
udisks? ( || (
|
||||
>=app-emulation/emul-linux-x86-baselibs-20130224[development,-abi_x86_32(-)]
|
||||
>=sys-apps/dbus-1.6.18-r1[abi_x86_32(-)]
|
||||
) )
|
||||
fontconfig? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/fontconfig-2.10.92[abi_x86_32(-)]
|
||||
) )
|
||||
gphoto2? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libgphoto2-2.5.3.1[abi_x86_32(-)]
|
||||
) )
|
||||
openal? ( || (
|
||||
app-emulation/emul-linux-x86-sdl[development,-abi_x86_32(-)]
|
||||
>=media-libs/openal-1.15.1[abi_x86_32(-)]
|
||||
) )
|
||||
gstreamer? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=media-libs/gstreamer-0.10.36-r2:0.10[abi_x86_32(-)]
|
||||
>=media-libs/gst-plugins-base-0.10.36:0.10[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
X? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=x11-libs/libXcursor-1.1.14[abi_x86_32(-)]
|
||||
>=x11-libs/libXext-1.3.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXrandr-1.4.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXi-1.7.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXxf86vm-1.1.3[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
xinerama? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=x11-libs/libXinerama-1.1.3[abi_x86_32(-)]
|
||||
) )
|
||||
alsa? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[alsa,development,-abi_x86_32(-)]
|
||||
>=media-libs/alsa-lib-1.0.27.2[abi_x86_32(-)]
|
||||
) )
|
||||
cups? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs
|
||||
>=net-print/cups-1.7.1-r1[abi_x86_32(-)]
|
||||
) )
|
||||
opencl? ( >=virtual/opencl-0-r3[abi_x86_32(-)] )
|
||||
opengl? ( || (
|
||||
app-emulation/emul-linux-x86-opengl[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=virtual/glu-9.0-r1[abi_x86_32(-)]
|
||||
>=virtual/opengl-7.0-r1[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
gsm? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/gsm-1.0.13-r1[abi_x86_32(-)]
|
||||
) )
|
||||
jpeg? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=virtual/jpeg-0-r2:0[abi_x86_32(-)]
|
||||
) )
|
||||
ldap? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=net-nds/openldap-2.4.38-r1:=[abi_x86_32(-)]
|
||||
) )
|
||||
lcms? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/lcms-2.5:2[abi_x86_32(-)]
|
||||
) )
|
||||
mp3? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/mpg123-1.15.4[abi_x86_32(-)]
|
||||
) )
|
||||
netapi? ( >=net-fs/samba-3.6.23-r1[netapi(+),abi_x86_32(-)] )
|
||||
nls? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-devel/gettext-0.18.3.2[abi_x86_32(-)]
|
||||
) )
|
||||
odbc? ( || (
|
||||
app-emulation/emul-linux-x86-db[development,-abi_x86_32(-)]
|
||||
>=dev-db/unixODBC-2.3.2:=[abi_x86_32(-)]
|
||||
) )
|
||||
osmesa? ( || (
|
||||
>=app-emulation/emul-linux-x86-opengl-20121028[development,-abi_x86_32(-)]
|
||||
>=media-libs/mesa-9.1.6[osmesa,abi_x86_32(-)]
|
||||
) )
|
||||
pipelight? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-apps/attr-2.4.47-r1[abi_x86_32(-)]
|
||||
) )
|
||||
pulseaudio? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/pulseaudio-5.0[abi_x86_32(-)]
|
||||
) )
|
||||
xml? ( || (
|
||||
>=app-emulation/emul-linux-x86-baselibs-20131008[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=dev-libs/libxml2-2.9.1-r4[abi_x86_32(-)]
|
||||
>=dev-libs/libxslt-1.1.28-r1[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
scanner? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-gfx/sane-backends-1.0.23:=[abi_x86_32(-)]
|
||||
) )
|
||||
ssl? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=net-libs/gnutls-2.12.23-r6:=[abi_x86_32(-)]
|
||||
) )
|
||||
png? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libpng-1.6.10:0[abi_x86_32(-)]
|
||||
) )
|
||||
v4l? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libv4l-0.9.5[abi_x86_32(-)]
|
||||
) )
|
||||
xcomposite? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=x11-libs/libXcomposite-0.4.4-r1[abi_x86_32(-)]
|
||||
) )
|
||||
)
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
dos? ( games-emulation/dosbox )
|
||||
perl? ( dev-lang/perl dev-perl/XML-Simple )
|
||||
samba? ( >=net-fs/samba-3.0.25 )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )
|
||||
pulseaudio? ( realtime? ( sys-auth/rtkit ) )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
amd64? ( abi_x86_32? ( !abi_x86_64? ( ${NATIVE_DEPEND} ) ) )
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )
|
||||
prelink? ( sys-devel/prelink )
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
sys-devel/flex"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then
|
||||
eerror "You need gcc-4.4+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ x$(eselect opencl show 2> /dev/null) = "xintel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
git-2_src_unpack
|
||||
else
|
||||
unpack ${MY_P}.tar.bz2
|
||||
fi
|
||||
|
||||
use pulseaudio && unpack "${PULSE_PATCHES}.tar.bz2"
|
||||
if use pipelight; then
|
||||
unpack "${COMPHOLIO_PATCHES}.tar.gz"
|
||||
# we use a separate pulseaudio patchset
|
||||
rm -r "${COMPHOLIO_PATCHES}/patches/06-winepulse" || die
|
||||
# ... and need special tools for binary patches
|
||||
mv "${COMPHOLIO_PATCHES}/patches/10-Missing_Fonts" "${T}" || die
|
||||
fi
|
||||
unpack "${WINE_GENTOO}.tar.bz2"
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
local f
|
||||
local PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
||||
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
|
||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
||||
)
|
||||
use pulseaudio && PATCHES+=(
|
||||
"../${PULSE_PATCHES}"/*.patch #421365
|
||||
)
|
||||
if use gstreamer; then
|
||||
# See http://bugs.winehq.org/show_bug.cgi?id=30557
|
||||
ewarn "Applying experimental patch to fix GStreamer support. Note that"
|
||||
ewarn "this patch has been reported to cause crashes in certain games."
|
||||
|
||||
PATCHES+=( "../${PULSE_PATCHES}"/gstreamer/*.patch )
|
||||
fi
|
||||
if use pipelight; then
|
||||
ewarn "Applying the unofficial Compholio patchset for Pipelight support,"
|
||||
ewarn "which is unsupported by Wine developers. Please don't report bugs"
|
||||
ewarn "to Wine bugzilla unless you can reproduce them with USE=-pipelight"
|
||||
|
||||
PATCHES+=(
|
||||
"../${COMPHOLIO_PATCHES}/patches"/*/*.patch #507950
|
||||
"../${COMPHOLIO_PATCHES}/patches/patch-list.patch"
|
||||
)
|
||||
# epatch doesn't support binary patches
|
||||
ebegin "Applying Compholio font patches"
|
||||
for f in "${T}/10-Missing_Fonts"/*.patch; do
|
||||
"../${COMPHOLIO_PATCHES}/debian/tools/gitapply.sh" < "${f}" || die "Failed to apply Compholio font patches"
|
||||
done
|
||||
eend
|
||||
fi
|
||||
autotools-utils_src_prepare
|
||||
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' tools/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/oic_winlogo.ico dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
$(use_with png)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use pulseaudio && myconf+=( --with-pulse )
|
||||
use pipelight && myconf+=( --with-xattr )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
local l
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
||||
if use gecko ; then
|
||||
insinto /usr/share/wine/gecko
|
||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
||||
fi
|
||||
if use mono ; then
|
||||
insinto /usr/share/wine/mono
|
||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
||||
fi
|
||||
if ! use perl ; then
|
||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym /usr/bin/wine{64,} # 404331
|
||||
dosym /usr/bin/wine{64,}-preloader
|
||||
fi
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
||||
done
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
gnome2_icon_savelist
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
gnome2_icon_cache_update
|
||||
fdo-mime_desktop_database_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
gnome2_icon_cache_update
|
||||
fdo-mime_desktop_database_update
|
||||
}
|
@ -0,0 +1,497 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.7.28.ebuild,v 1.1 2014/10/05 13:17:36 ryao Exp $
|
||||
|
||||
EAPI="5"
|
||||
|
||||
AUTOTOOLS_AUTORECONF=1
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools-utils eutils fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git"
|
||||
inherit git-2
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_/-}"
|
||||
SRC_URI="mirror://sourceforge/${PN}/Source/${MY_P}.tar.bz2"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
fi
|
||||
|
||||
GV="2.24"
|
||||
MV="4.5.2"
|
||||
COMPHOLIO_P="wine-compholio-${PV}"
|
||||
WINE_GENTOO="wine-gentoo-2013.06.24"
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
||||
HOMEPAGE="http://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
gecko? (
|
||||
abi_x86_32? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86.msi )
|
||||
abi_x86_64? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86_64.msi )
|
||||
)
|
||||
mono? ( mirror://sourceforge/${PN}/Wine%20Mono/${MV}/wine-mono-${MV}.msi )
|
||||
pipelight? ( https://github.com/compholio/wine-compholio-daily/archive/v${PV}.tar.gz -> ${COMPHOLIO_P}.tar.gz )
|
||||
pulseaudio? ( https://github.com/compholio/wine-compholio-daily/archive/v${PV}.tar.gz -> ${COMPHOLIO_P}.tar.gz )
|
||||
http://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pipelight +png +prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype +udisks v4l +X xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
test? ( abi_x86_32 )
|
||||
elibc_glibc? ( threads )
|
||||
mono? ( abi_x86_32 )
|
||||
osmesa? ( opengl )" #286560
|
||||
# winepulse patches needed for gstreamer due to http://bugs.winehq.org/show_bug.cgi?id=30557
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
NATIVE_DEPEND="
|
||||
truetype? ( >=media-libs/freetype-2.0.0 )
|
||||
capi? ( net-dialup/capi4k-utils )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
udisks? ( sys-apps/dbus )
|
||||
fontconfig? ( media-libs/fontconfig:= )
|
||||
gphoto2? ( media-libs/libgphoto2:= )
|
||||
openal? ( media-libs/openal:= )
|
||||
gstreamer? ( media-libs/gstreamer:0.10 media-libs/gst-plugins-base:0.10 )
|
||||
X? (
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXi
|
||||
x11-libs/libXxf86vm
|
||||
)
|
||||
xinerama? ( x11-libs/libXinerama )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups:= )
|
||||
opencl? ( virtual/opencl )
|
||||
opengl? (
|
||||
virtual/glu
|
||||
virtual/opengl
|
||||
)
|
||||
gsm? ( media-sound/gsm:= )
|
||||
jpeg? ( virtual/jpeg:0= )
|
||||
ldap? ( net-nds/openldap:= )
|
||||
lcms? ( media-libs/lcms:2= )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0 )
|
||||
netapi? ( net-fs/samba[netapi(+)] )
|
||||
nls? ( sys-devel/gettext )
|
||||
odbc? ( dev-db/unixODBC:= )
|
||||
osmesa? ( media-libs/mesa[osmesa] )
|
||||
pipelight? ( sys-apps/attr )
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
xml? ( dev-libs/libxml2 dev-libs/libxslt )
|
||||
scanner? ( media-gfx/sane-backends:= )
|
||||
ssl? ( net-libs/gnutls:= )
|
||||
png? ( media-libs/libpng:0= )
|
||||
v4l? ( media-libs/libv4l )
|
||||
xcomposite? ( x11-libs/libXcomposite )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
!amd64? ( ${NATIVE_DEPEND} )
|
||||
amd64? (
|
||||
abi_x86_64? ( ${NATIVE_DEPEND} )
|
||||
abi_x86_32? (
|
||||
truetype? ( || (
|
||||
>=app-emulation/emul-linux-x86-xlibs-2.1[development,-abi_x86_32(-)]
|
||||
>=media-libs/freetype-2.5.0.1[abi_x86_32(-)]
|
||||
) )
|
||||
ncurses? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-libs/ncurses-5.9-r3[abi_x86_32(-)]
|
||||
) )
|
||||
udisks? ( || (
|
||||
>=app-emulation/emul-linux-x86-baselibs-20130224[development,-abi_x86_32(-)]
|
||||
>=sys-apps/dbus-1.6.18-r1[abi_x86_32(-)]
|
||||
) )
|
||||
fontconfig? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/fontconfig-2.10.92[abi_x86_32(-)]
|
||||
) )
|
||||
gphoto2? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libgphoto2-2.5.3.1[abi_x86_32(-)]
|
||||
) )
|
||||
openal? ( || (
|
||||
app-emulation/emul-linux-x86-sdl[development,-abi_x86_32(-)]
|
||||
>=media-libs/openal-1.15.1[abi_x86_32(-)]
|
||||
) )
|
||||
gstreamer? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=media-libs/gstreamer-0.10.36-r2:0.10[abi_x86_32(-)]
|
||||
>=media-libs/gst-plugins-base-0.10.36:0.10[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
X? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=x11-libs/libXcursor-1.1.14[abi_x86_32(-)]
|
||||
>=x11-libs/libXext-1.3.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXrandr-1.4.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXi-1.7.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXxf86vm-1.1.3[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
xinerama? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=x11-libs/libXinerama-1.1.3[abi_x86_32(-)]
|
||||
) )
|
||||
alsa? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[alsa,development,-abi_x86_32(-)]
|
||||
>=media-libs/alsa-lib-1.0.27.2[abi_x86_32(-)]
|
||||
) )
|
||||
cups? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs
|
||||
>=net-print/cups-1.7.1-r1[abi_x86_32(-)]
|
||||
) )
|
||||
opencl? ( >=virtual/opencl-0-r3[abi_x86_32(-)] )
|
||||
opengl? ( || (
|
||||
app-emulation/emul-linux-x86-opengl[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=virtual/glu-9.0-r1[abi_x86_32(-)]
|
||||
>=virtual/opengl-7.0-r1[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
gsm? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/gsm-1.0.13-r1[abi_x86_32(-)]
|
||||
) )
|
||||
jpeg? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=virtual/jpeg-0-r2:0[abi_x86_32(-)]
|
||||
) )
|
||||
ldap? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=net-nds/openldap-2.4.38-r1:=[abi_x86_32(-)]
|
||||
) )
|
||||
lcms? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/lcms-2.5:2[abi_x86_32(-)]
|
||||
) )
|
||||
mp3? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/mpg123-1.15.4[abi_x86_32(-)]
|
||||
) )
|
||||
netapi? ( >=net-fs/samba-3.6.23-r1[netapi(+),abi_x86_32(-)] )
|
||||
nls? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-devel/gettext-0.18.3.2[abi_x86_32(-)]
|
||||
) )
|
||||
odbc? ( || (
|
||||
app-emulation/emul-linux-x86-db[development,-abi_x86_32(-)]
|
||||
>=dev-db/unixODBC-2.3.2:=[abi_x86_32(-)]
|
||||
) )
|
||||
osmesa? ( || (
|
||||
>=app-emulation/emul-linux-x86-opengl-20121028[development,-abi_x86_32(-)]
|
||||
>=media-libs/mesa-9.1.6[osmesa,abi_x86_32(-)]
|
||||
) )
|
||||
pipelight? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-apps/attr-2.4.47-r1[abi_x86_32(-)]
|
||||
) )
|
||||
pulseaudio? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/pulseaudio-5.0[abi_x86_32(-)]
|
||||
) )
|
||||
xml? ( || (
|
||||
>=app-emulation/emul-linux-x86-baselibs-20131008[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=dev-libs/libxml2-2.9.1-r4[abi_x86_32(-)]
|
||||
>=dev-libs/libxslt-1.1.28-r1[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
scanner? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-gfx/sane-backends-1.0.23:=[abi_x86_32(-)]
|
||||
) )
|
||||
ssl? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=net-libs/gnutls-2.12.23-r6:=[abi_x86_32(-)]
|
||||
) )
|
||||
png? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libpng-1.6.10:0[abi_x86_32(-)]
|
||||
) )
|
||||
v4l? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libv4l-0.9.5[abi_x86_32(-)]
|
||||
) )
|
||||
xcomposite? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=x11-libs/libXcomposite-0.4.4-r1[abi_x86_32(-)]
|
||||
) )
|
||||
)
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
dos? ( games-emulation/dosbox )
|
||||
perl? ( dev-lang/perl dev-perl/XML-Simple )
|
||||
samba? ( >=net-fs/samba-3.0.25 )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )
|
||||
pulseaudio? ( realtime? ( sys-auth/rtkit ) )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
amd64? ( abi_x86_32? ( !abi_x86_64? ( ${NATIVE_DEPEND} ) ) )
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )
|
||||
prelink? ( sys-devel/prelink )
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
sys-devel/flex"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then
|
||||
eerror "You need gcc-4.4+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ x$(eselect opencl show 2> /dev/null) = "xintel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
git-2_src_unpack
|
||||
else
|
||||
unpack ${MY_P}.tar.bz2
|
||||
fi
|
||||
|
||||
use pipelight || use pulseaudio && unpack "${COMPHOLIO_P}.tar.gz"
|
||||
|
||||
unpack "${WINE_GENTOO}.tar.bz2"
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
local f
|
||||
local PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
||||
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
|
||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
||||
)
|
||||
local COMPHOLIO_MAKE_ARGS="-W fonts-Missing_Fonts.ok"
|
||||
|
||||
use pulseaudio || COMPHOLIO_MAKE_ARGS="${COMPHOLIO_MAKE_ARGS} -W winepulse-PulseAudio_Support.ok"
|
||||
if use gstreamer; then
|
||||
# See http://bugs.winehq.org/show_bug.cgi?id=30557
|
||||
ewarn "Applying experimental patch to fix GStreamer support. Note that"
|
||||
ewarn "this patch has been reported to cause crashes in certain games."
|
||||
|
||||
PATCHES+=( "${FILESDIR}/${PN}-1.7.28-gstreamer-v4.patch" )
|
||||
fi
|
||||
if use pipelight; then
|
||||
ewarn "Applying the unofficial Compholio patchset for Pipelight support,"
|
||||
ewarn "which is unsupported by Wine developers. Please don't report bugs"
|
||||
ewarn "to Wine bugzilla unless you can reproduce them with USE=-pipelight"
|
||||
|
||||
# epatch doesn't support binary patches and we ship our own pulse patches
|
||||
emake -C "${WORKDIR}/${COMPHOLIO_P}/patches" \
|
||||
$(echo ${COMPHOLIO_MAKE_ARGS}) \
|
||||
series
|
||||
|
||||
PATCHES+=( $(sed -e "s:^:${WORKDIR}/${COMPHOLIO_P}/patches/:" \
|
||||
"${WORKDIR}/${COMPHOLIO_P}/patches/series") )
|
||||
|
||||
# epatch doesn't support binary patches
|
||||
ebegin "Applying Compholio font patches"
|
||||
for f in "${WORKDIR}/${COMPHOLIO_P}/patches/fonts-Missing_Fonts"/*.patch; do
|
||||
"../${COMPHOLIO_P}/debian/tools/gitapply.sh" < "${f}" \
|
||||
|| die "Failed to apply ${f}"
|
||||
done
|
||||
eend
|
||||
elif use pulseaudio; then
|
||||
PATCHES+=( "../${COMPHOLIO_P}/patches/winepulse-PulseAudio_Support"/*.patch )
|
||||
fi
|
||||
autotools-utils_src_prepare
|
||||
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' tools/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/oic_winlogo.ico dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
--without-pcap
|
||||
$(use_with png)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use pulseaudio && myconf+=( --with-pulse )
|
||||
use pipelight && myconf+=( --with-xattr )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
local l
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
||||
if use gecko ; then
|
||||
insinto /usr/share/wine/gecko
|
||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
||||
fi
|
||||
if use mono ; then
|
||||
insinto /usr/share/wine/mono
|
||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
||||
fi
|
||||
if ! use perl ; then
|
||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym /usr/bin/wine{64,} # 404331
|
||||
dosym /usr/bin/wine{64,}-preloader
|
||||
fi
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
||||
done
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
gnome2_icon_savelist
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
gnome2_icon_cache_update
|
||||
fdo-mime_desktop_database_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
gnome2_icon_cache_update
|
||||
fdo-mime_desktop_database_update
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-perl/Class-Load-XS/Class-Load-XS-0.40.0.ebuild,v 1.5 2012/12/25 18:27:17 blueness Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
MODULE_AUTHOR=DROLSKY
|
||||
MODULE_VERSION=0.04
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="XS implementation of parts of Class::Load"
|
||||
|
||||
LICENSE="Artistic-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc x86 ~x64-macos"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-perl/Class-Load-0.150.0
|
||||
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
>=virtual/perl-Module-Build-0.360.100
|
||||
test? (
|
||||
>=virtual/perl-Test-Simple-0.880.0
|
||||
>=dev-perl/Module-Implementation-0.40.0
|
||||
dev-perl/Test-Fatal
|
||||
)
|
||||
"
|
||||
|
||||
SRC_TEST=do
|
@ -1,2 +1 @@
|
||||
DIST Class-Load-XS-0.04.tar.gz 55168 SHA256 d4731aee4d5484cd1eef9b2aa46d0370be3f4c9aeb8fd14fc11bbd48201e05e3 SHA512 7c368964bcb1c145eb784a6bf52b461d5072dcd671b5a2f49b8678883c7c56a88ebaf8288bccba875867fd0de21440a86ac943aafd3c490b1de220c2a2b585b1 WHIRLPOOL c0b6fc259f14457f39843e2957efefd77db25b80bba6625871a7f894f17dd8d1658b1f637ad7f8bdd481e1fc6dee52eee2f16f412ead8374def628e3c04650a1
|
||||
DIST Class-Load-XS-0.06.tar.gz 56141 SHA256 338232719c6646e4d411954feb30b3db5bb5b024a277fc644e5270676d1a87b6 SHA512 07effa62cef0c27f25c5918e7dbc9aec3aa2ad88dfd06963cef2908c562532ea3048feb97717f0a120ca40250f3629f31a2d9d2263036e6de61158bebb6afe36 WHIRLPOOL 1ad8f87e7335bb9072a65e9a73f25105fef0915be3d1d8e90fefaf0c16c494bb215310ddabf32a7346c12e2c8924ee81e10fab0a5b57bd3542fbf6c273ebc25e
|
||||
|
@ -1,26 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-perl/Config-Any/Config-Any-0.230.0.ebuild,v 1.4 2013/09/08 10:28:16 pinkbyte Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
MODULE_AUTHOR=BRICAS
|
||||
MODULE_VERSION=0.23
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION="Support several config file formats"
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~ppc ~x86 ~ppc-aix"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND=">=virtual/perl-Module-Pluggable-3.9
|
||||
!<dev-perl/config-general-2.47"
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
dev-perl/Test-Pod
|
||||
dev-perl/Test-Pod-Coverage
|
||||
)
|
||||
"
|
||||
|
||||
SRC_TEST=do
|
@ -1,2 +1 @@
|
||||
DIST Config-Any-0.23.tar.gz 33172 SHA256 ff49d8d92e598feaacdd17635ab564b4625b4441d7c677d2a827f381db16669e SHA512 f9ba62f66063d42b4d19648f8c3f7b92619d24bc1eb106e790909cc89cb183a62d3582f154401e1d8ef2e6eb4905964878230d1e087a668d37f71bc36171d64e WHIRLPOOL cfa410a4c748183281a52d91ab82cf2d70506a43c0ffd57277de33421efad1b8b04eb6454b02bbf22b44458894c38c67bbaafa6761fee3ed65a025d87f518d40
|
||||
DIST Config-Any-0.24.tar.gz 35024 SHA256 710f8fc8f9414205cb58399bfbb4d9aaf7883f8ce046cee22913f6818795c61a SHA512 7eee9ea2794d87aada9a46668ac9c947b34c7107f53a3da9de21a3ebebc63b8718e3f8cea1009697909047d376de0e8fcd137d6d3dd66cb719bf7e48a50cd093 WHIRLPOOL 09a88c044427cd3bc919b944fac41f115440d240d616e7f6a194e66810ec7130dbcc55aa87664eaf4322cf1272b3348cf71ea8a287ff4723c5ea1eccf3888ab4
|
||||
|
@ -1,32 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-perl/IO-Socket-IP/IO-Socket-IP-0.180.0.ebuild,v 1.3 2014/08/25 12:23:35 armin76 Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
MODULE_AUTHOR=PEVANS
|
||||
MODULE_VERSION=0.18
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION='A drop-in replacement for IO::Socket::INET supporting both IPv4 and IPv6'
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="
|
||||
>=virtual/perl-Socket-1.970.0
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/perl-Module-Build
|
||||
test? (
|
||||
dev-perl/Test-Pod
|
||||
)
|
||||
"
|
||||
|
||||
SRC_TEST="do"
|
||||
|
||||
src_test() {
|
||||
rm t/21nonblocking-connect-internet.t || die
|
||||
perl-module_src_test
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-perl/IO-Socket-IP/IO-Socket-IP-0.220.0.ebuild,v 1.2 2014/08/25 12:23:35 armin76 Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
MODULE_AUTHOR=PEVANS
|
||||
MODULE_VERSION=0.22
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION='A drop-in replacement for IO::Socket::INET supporting both IPv4 and IPv6'
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RDEPEND="
|
||||
>=virtual/perl-Socket-1.970.0
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/perl-Module-Build
|
||||
test? (
|
||||
dev-perl/Test-Pod
|
||||
)
|
||||
"
|
||||
|
||||
SRC_TEST="do"
|
@ -1,4 +1,2 @@
|
||||
DIST IO-Socket-IP-0.18.tar.gz 36225 SHA256 3c002b62e0c2855825d2551de5cc8081ee197f3d49ce9198b4c8b3be6d8bd959 SHA512 ff0433fd4cf51fc5dbae1980cbd99c066866f63eccca7a1216b71a5794094f8b0fb8d6abe8744e40db4bfe575b8667b458776ccd45108cc5cb963ce5e51b1434 WHIRLPOOL 58de8164e9dbc2c1f4e538b33594c3c65c50c066b1c1fa35c3e9cde45d97a317ffbae400091e1970c6b2d0f6e44e6138f17faa5b8b3b9c9f3c43ec635164908a
|
||||
DIST IO-Socket-IP-0.22.tar.gz 38720 SHA256 3dc467bbc42a2deca7f6948d19817afca3a71e39bb37f3c743b2f3411257790e SHA512 312c4187c7474fc00ecad2a7d733cf3e2d0833b16b8f6d64f09db619ac918ff8b2f24e586b4008af4923a8557d50fbe745f9f1e337a3e639b0d1f145028b1cc8 WHIRLPOOL 7656fb157f3446984bcfe0cdcc203959af6dac520abaddfe53983d6cf37a74714b27f9eec04d30e8eb252775662cc73c595a63eda41d2fc032210890302ea413
|
||||
DIST IO-Socket-IP-0.23.tar.gz 38891 SHA256 8b39615c2c2bcd929a705aba5f5d96593b5612ba927e1867a64988b7f674abdd SHA512 4b558b1bb0de938211bf1caf51648e7999fb0c8e03ee7e5272144e0f319e08fa19f0d54588ea3ae2efe7bf4632814285a318b8c9e2c45e2eee164522be5b380f WHIRLPOOL dbef0b41c56c9eea22ce939527174fcfaf8f4a51248b72bf16e2e747d6d2c9bc83d8e4502e3e8771de9940b3a617bf6f3720127384e3cd87c17eeb116562a500
|
||||
DIST IO-Socket-IP-0.28.tar.gz 41015 SHA256 1b94b3d3bb3d6ac23c2185910ae12bf84c342ca540ce7be366c858cf8186e11f SHA512 f94c59a147454cc18716cf5a48453784bd24460fea90b7335e191072c19315689b2f4752e53a3a5bf7d5f9ee26a08ef7ce0ab5c74f1ca900112849b72864c8b1 WHIRLPOOL 176a4cf303bf8890fa58392eb633e98df3a61347a819f78cf2f5007ad339cdeda530ccab1b5e337faa3bc71ee9ae6082bfb446f2760db17a379f5cf0f5dfb1aa
|
||||
|
@ -0,0 +1 @@
|
||||
DIST Test-Warnings-0.016.tar.gz 32774 SHA256 09ebc9afa29eb4d1d44fbd974dfcd52e0a2d9ce7ec3e3ee7602394157831aba9 SHA512 78a3e26d2093be8612e1e97f2d45023f224ea7e09f9d669a049fd331e7ff49fb93be52996d7f7fba29263437307587fedd80c54a56b6b282b328668152557027 WHIRLPOOL 209b65faf561c72494ee46b604e2dbde1e3b55a53df7df05b849a1e6b713eca25730bb1c9e84d1c0c047e858995b8b553405668222bbe61b904362d47e137446
|
@ -0,0 +1,38 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header :$
|
||||
|
||||
EAPI=5
|
||||
|
||||
MODULE_AUTHOR=ETHER
|
||||
MODULE_VERSION=0.016
|
||||
inherit perl-module
|
||||
|
||||
DESCRIPTION='Test for warnings and the lack of them'
|
||||
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
# Test::Builder -> perl-Test-Simple
|
||||
RDEPEND="
|
||||
virtual/perl-Exporter
|
||||
virtual/perl-Test-Simple
|
||||
virtual/perl-parent
|
||||
"
|
||||
# File::Spec::Functions -> perl-File-Spec
|
||||
# List::Util -> perl-Scalar-List-Utils
|
||||
# Test::More -> perl-Test-Simple
|
||||
DEPEND="
|
||||
>=virtual/perl-ExtUtils-MakeMaker-6.300.0
|
||||
${RDEPEND}
|
||||
test? (
|
||||
virtual/perl-File-Spec
|
||||
virtual/perl-Scalar-List-Utils
|
||||
virtual/perl-Test-Simple
|
||||
virtual/perl-if
|
||||
virtual/perl-version
|
||||
)
|
||||
"
|
||||
|
||||
SRC_TEST="do parallel"
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>perl</herd>
|
||||
</pkgmetadata>
|
@ -0,0 +1 @@
|
||||
DIST compass-core-1.0.1.gem 137728 SHA256 fd07ea734e56113670fd8ecceac143b09a2034dae0b3d11b16326983e5ab0b7e SHA512 ddac9dbbf35981cf71cf3abab80ebe516194e099dbaf9f7f9a3056b2b74df8486a47dcdfeec19252241aac4f575b1f36a78670c9ab125a29871b5025607de28b WHIRLPOOL 163249be0bd648f396f61b2d42aeba80c5c8e54b76d951adf94344d10fe7e659ec478dfa5f8eb97089ec82babb3532f7a8cec923d2cc4ec33062b5d5648db734
|
@ -0,0 +1,27 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/compass-core/compass-core-1.0.1.ebuild,v 1.1 2014/10/05 06:42:13 graaff Exp $
|
||||
|
||||
EAPI=5
|
||||
USE_RUBY="ruby19 ruby20 ruby21"
|
||||
|
||||
RUBY_FAKEGEM_TASK_TEST=""
|
||||
|
||||
RUBY_FAKEGEM_TASK_DOC=""
|
||||
|
||||
RUBY_FAKEGEM_EXTRAINSTALL="data stylesheets templates"
|
||||
|
||||
inherit ruby-fakegem versionator
|
||||
|
||||
DESCRIPTION="Compass Stylesheet Authoring Framework"
|
||||
HOMEPAGE="http://compass-style.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="$(get_version_component_range 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
ruby_add_rdepend "
|
||||
>=dev-ruby/multi_json-1.0
|
||||
>=dev-ruby/sass-3.3.0 <dev-ruby/sass-3.5
|
||||
"
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>ruby</herd>
|
||||
<maintainer>
|
||||
<email>vikraman@gentoo.org</email>
|
||||
<name>Vikraman Choudhury (vikraman)</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
Compass is a Sass-based Stylesheet Framework that streamlines the
|
||||
creation and maintenance of CSS.
|
||||
</longdescription>
|
||||
</pkgmetadata>
|
@ -0,0 +1 @@
|
||||
DIST compass-import-once-1.0.5.gem 9728 SHA256 38978ffed0d332e8526e87e1befd1b6831774ca7d8350c5adb5b9eef167fc72e SHA512 2ef723803341892b34a4bbe691b32ddd266a125c5e3faf8034c473566d70c7a8c0931f1a02abe64c243fe62f2a204cc8e53b951dd88c440eada4ec2dfc19856b WHIRLPOOL 70804304882031ea8d12a8fcfa56687e77a594e3b86235a56157218306dc9898a64c9a79279fcdd0225ff439fdf3912ae7f3e7100c963fcbf981eacca5bdc3a9
|
@ -0,0 +1,33 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/compass-import-once/compass-import-once-1.0.5.ebuild,v 1.1 2014/10/05 06:56:19 graaff Exp $
|
||||
|
||||
EAPI=5
|
||||
USE_RUBY="ruby19 ruby20 ruby21"
|
||||
|
||||
# Skip tests since they depend on sass-globbing which does not have a
|
||||
# license and where the last version is known to be broken.
|
||||
RUBY_FAKEGEM_TASK_TEST=""
|
||||
|
||||
RUBY_FAKEGEM_TASK_DOC=""
|
||||
RUBY_FAKEGEM_EXTRADOC="README.md"
|
||||
|
||||
RUBY_FAKEGEM_EXTRAINSTALL="VERSION"
|
||||
|
||||
inherit ruby-fakegem versionator
|
||||
|
||||
DESCRIPTION="Speed up your Sass compilation by making @import only import each file once"
|
||||
HOMEPAGE="http://compass-style.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="$(get_version_component_range 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
ruby_add_rdepend "
|
||||
>=dev-ruby/sass-3.2 <dev-ruby/sass-3.5
|
||||
"
|
||||
|
||||
all_ruby_prepare() {
|
||||
sed -i -e '/bundler/I s:^:#:' Rakefile || die
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<herd>ruby</herd>
|
||||
<maintainer>
|
||||
<email>vikraman@gentoo.org</email>
|
||||
<name>Vikraman Choudhury (vikraman)</name>
|
||||
</maintainer>
|
||||
<longdescription lang="en">
|
||||
Compass is a Sass-based Stylesheet Framework that streamlines the
|
||||
creation and maintenance of CSS.
|
||||
</longdescription>
|
||||
</pkgmetadata>
|
@ -1,2 +1,3 @@
|
||||
DIST compass-0.12.6.gem 1167360 SHA256 af20f1eac1bd6b3b478ace7fb1ade6d4349163b1d58960e7192dcf0913b718a1 SHA512 f3ae52acdb6a7e5c6b36431fb5660f518c21ffd7218ff88559d107de4bf05aa14890f4d2629542c4675965ed4740ac8e9cd93bd6117393aa82c39267d87f9af9 WHIRLPOOL 1557a7c6d806671fbf5a2826800a6a8ed482b67ed4230ecc6373c2120913db635a6b80b9dee91df782be63282ef892efb1f18a0db7aad45cfd738ddc2c84d237
|
||||
DIST compass-0.12.7.gem 1160192 SHA256 e1bb4113fe000e3b93793c1bcac262ba942040be599f6c24fc1b6a007fb5a62b SHA512 50f256bc107ec2fa5516e3115d898f1e6011045e4c1e6042b79a312affae072a3323a40b4edc4591591500d217369404c309574aecd1730f1c07331225db5269 WHIRLPOOL 9785292a297dc4cbf3dba4835a8fcb45adcbad448fbd268ed2a4e8be9f4cc3755be49171bccaf5a3e953ab9fcd5222e5ef24a5885f8122a7c4224e1a9efd76bd
|
||||
DIST compass-1.0.1.gem 379392 SHA256 80c40c6c5974af98200064a7deabaa1ebc9bde5ef392c5f9179f9f219735ab33 SHA512 a2f1ff4ce6a6df9170d1056d9e8be7067ca9ec653fa50cb05d12a740de6628478c251d024fd6c6209c801b0fffe43ef1f653b7a106be7875a81eca5f1c8d1db5 WHIRLPOOL 4053db34dcdcfd9caea8e6a9778f13ffb83e3c55bf3011c5d271f290fe6f1ad10075f22a0182ea7bdd9694c364bcb36aa4112d35ba5af6abfd676429ea339999
|
||||
|
@ -0,0 +1,48 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/compass/compass-0.12.7-r1.ebuild,v 1.1 2014/10/05 07:06:56 graaff Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
USE_RUBY="ruby19"
|
||||
|
||||
RUBY_FAKEGEM_TASK_TEST="-Ilib test features"
|
||||
RUBY_FAKEGEM_EXTRAINSTALL="frameworks"
|
||||
RUBY_FAKEGEM_RECIPE_DOC="rdoc"
|
||||
|
||||
# To avoid collisions with compass:1
|
||||
RUBY_FAKEGEM_BINWRAP=""
|
||||
|
||||
inherit ruby-fakegem
|
||||
|
||||
DESCRIPTION="Sass-based Stylesheet Framework"
|
||||
HOMEPAGE="http://compass-style.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
ruby_add_bdepend "
|
||||
>=dev-ruby/sass-3.2.19:0
|
||||
>=dev-ruby/chunky_png-1.2
|
||||
>=dev-ruby/fssm-0.2.7
|
||||
test? (
|
||||
dev-ruby/mocha:0.13
|
||||
dev-ruby/css_parser
|
||||
dev-util/cucumber
|
||||
)
|
||||
"
|
||||
|
||||
all_ruby_prepare() {
|
||||
sed -e '/.*[Bb]undler.*/d' \
|
||||
-i Rakefile || die "sed failed"
|
||||
sed -e '/require \"mocha\/test_unit\"/d' \
|
||||
-i test/test_helper.rb || die "sed failed"
|
||||
|
||||
sed -i -e '1igem "mocha", "~> 0.13.0"' test/test_helper.rb || die
|
||||
|
||||
sed -i -e "s:/tmp:${TMPDIR}:" features/step_definitions/command_line_steps.rb || die
|
||||
# This scenario fails, not clear yet why.
|
||||
sed -i -e '/Watching a project for changes/,/^$/ d' features/command_line.feature || die
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-ruby/compass/compass-1.0.1.ebuild,v 1.1 2014/10/05 07:06:56 graaff Exp $
|
||||
|
||||
EAPI=5
|
||||
USE_RUBY="ruby19 ruby20 ruby21"
|
||||
|
||||
RUBY_FAKEGEM_TASK_DOC=""
|
||||
|
||||
RUBY_FAKEGEM_TASK_TEST="-Ilib test features"
|
||||
|
||||
inherit ruby-fakegem
|
||||
|
||||
DESCRIPTION="Compass Stylesheet Authoring Framework"
|
||||
HOMEPAGE="http://compass-style.org/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="1"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
# Gem does not contain all files needed to run specs and it is not clear
|
||||
# which upstream repository/branch/directory to use.
|
||||
RESTRICT="test"
|
||||
|
||||
ruby_add_rdepend ">=dev-ruby/chunky_png-1.2
|
||||
>=dev-ruby/compass-core-1.0.1:1.0
|
||||
>=dev-ruby/compass-import-once-1.0.5:1.0
|
||||
>=dev-ruby/rb-inotify-0.9
|
||||
>=dev-ruby/sass-3.3.13 <dev-ruby/sass-3.5
|
||||
!!<dev-ruby/compass-0.12.7-r1"
|
||||
|
||||
#ruby_add_bdepend "test? ( dev-ruby/colorize )"
|
||||
|
||||
all_ruby_prepare() {
|
||||
sed -i -e '/[Bb]undler/ s:^:#:' Rakefile || die
|
||||
}
|
@ -0,0 +1 @@
|
||||
DIST apulse-0.1.1.tar.gz 98851 SHA256 7415ca49de8e80c36825f59571cbcceb6f0eb88f79e3bcc3c7eec57f2b6c6076 SHA512 bfea1e8b87cd90e6bad01d7e80a1236997097bf8578e8917d83fa72e5b1d51905c011f71646db9a822cf23487ea2d9ca36e7bc188ddb4a0947852966f7bab505 WHIRLPOOL 1dc6d839d867d4afc62affd157dbc46307fae2d0ecc18e2dc726c1b742049a62300f6b14aea4c11cbae408fd230f5074b41d2410dd6e13044bf8741908f5b614
|
@ -0,0 +1,32 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/media-sound/apulse/apulse-0.1.1.ebuild,v 1.1 2014/10/05 09:08:44 jauhien Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit cmake-multilib
|
||||
|
||||
DESCRIPTION="PulseAudio emulation for ALSA"
|
||||
HOMEPAGE="https://github.com/i-rinat/apulse"
|
||||
SRC_URI="https://github.com/i-rinat/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT LGPL-2.1"
|
||||
SLOT="0"
|
||||
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
DEPEND="
|
||||
media-libs/alsa-lib[${MULTILIB_USEDEP}]
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
!app-emulation/emul-linux-x86-soundlibs
|
||||
!media-sound/pulseaudio
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
MULTILIB_CHOST_TOOLS=( /usr/bin/apulse )
|
||||
|
||||
multilib_src_configure() {
|
||||
local mycmakeargs="-DAPULSEPATH=${EPREFIX}/usr/$(get_libdir)"
|
||||
|
||||
cmake-utils_src_configure
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer>
|
||||
<email>jauhien@gentoo.org</email>
|
||||
</maintainer>
|
||||
</pkgmetadata>
|
@ -0,0 +1,378 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-2.2.8.ebuild,v 1.1 2014/10/05 06:17:11 aballier Exp $
|
||||
|
||||
EAPI="5"
|
||||
|
||||
# Subslot: libavutil major.libavcodec major.libavformat major
|
||||
# Since FFmpeg ships several libraries, subslot is kind of limited here.
|
||||
# Most consumers will use those three libraries, if a "less used" library
|
||||
# changes its soname, consumers will have to be rebuilt the old way
|
||||
# (preserve-libs).
|
||||
# If, for example, a package does not link to libavformat and only libavformat
|
||||
# changes its ABI then this package will be rebuilt needlessly. Hence, such a
|
||||
# package is free _not_ to := depend on FFmpeg but I would strongly encourage
|
||||
# doing so since such a case is unlikely.
|
||||
FFMPEG_SUBSLOT=52.55.55
|
||||
|
||||
SCM=""
|
||||
if [ "${PV#9999}" != "${PV}" ] ; then
|
||||
SCM="git-2"
|
||||
EGIT_REPO_URI="git://source.ffmpeg.org/ffmpeg.git"
|
||||
fi
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM}
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec"
|
||||
HOMEPAGE="http://ffmpeg.org/"
|
||||
if [ "${PV#9999}" != "${PV}" ] ; then
|
||||
SRC_URI=""
|
||||
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
|
||||
SRC_URI="mirror://gentoo/${P}.tar.bz2"
|
||||
else # Release
|
||||
SRC_URI="http://ffmpeg.org/releases/${P/_/-}.tar.bz2"
|
||||
fi
|
||||
FFMPEG_REVISION="${PV#*_p}"
|
||||
|
||||
LICENSE="GPL-2 amr? ( GPL-3 ) encode? ( aac? ( GPL-3 ) )"
|
||||
SLOT="0/${FFMPEG_SUBSLOT}"
|
||||
if [ "${PV#9999}" = "${PV}" ] ; then
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~mips ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
|
||||
fi
|
||||
IUSE="
|
||||
aac aacplus alsa amr amrenc bindist bluray +bzip2 cdio celt
|
||||
cpudetection debug doc +encode examples faac fdk flite fontconfig frei0r
|
||||
gme gnutls gsm +hardcoded-tables +iconv iec61883 ieee1394 jack jpeg2k
|
||||
ladspa libass libcaca libsoxr libv4l modplug mp3 +network openal opengl
|
||||
openssl opus oss pic pulseaudio quvi rtmp schroedinger sdl speex ssh
|
||||
static-libs test theora threads truetype twolame v4l vaapi vdpau vorbis vpx
|
||||
wavpack webp X x264 x265 xvid +zlib zvbi
|
||||
"
|
||||
|
||||
ARM_CPU_FEATURES="armv5te armv6 armv6t2 neon armvfp:vfp"
|
||||
MIPS_CPU_FEATURES="mips32r2 mipsdspr1 mipsdspr2 mipsfpu"
|
||||
PPC_CPU_FEATURES="altivec"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 sse4 sse4_2:sse42"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="
|
||||
${ARM_CPU_FEATURES}
|
||||
${MIPS_CPU_FEATURES}
|
||||
${PPC_CPU_FEATURES}
|
||||
${X86_CPU_FEATURES}
|
||||
"
|
||||
|
||||
for i in ${CPU_FEATURES}; do
|
||||
IUSE="${IUSE} ${i%:*}"
|
||||
done
|
||||
|
||||
FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher"
|
||||
|
||||
for i in ${FFTOOLS}; do
|
||||
IUSE="${IUSE} +fftools_$i"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bluray? ( >=media-libs/libbluray-0.3.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? (
|
||||
|| (
|
||||
>=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}]
|
||||
<dev-libs/libcdio-0.90[-minimal,${MULTILIB_USEDEP}]
|
||||
)
|
||||
)
|
||||
celt? ( >=media-libs/celt-0.11.1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
aacplus? ( >=media-libs/libaacplus-2.0.2-r1[${MULTILIB_USEDEP}] )
|
||||
amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-0.8:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.3[${MULTILIB_USEDEP}] )
|
||||
flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] )
|
||||
iec61883? (
|
||||
>=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
libass? ( >=media-libs/libass-0.10.2[${MULTILIB_USEDEP}] )
|
||||
libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] )
|
||||
libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] )
|
||||
libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] )
|
||||
modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] )
|
||||
openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] )
|
||||
opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] )
|
||||
openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
quvi? ( media-libs/libquvi:0.4 )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] )
|
||||
!media-video/qt-faststart
|
||||
!media-libs/libpostproc
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
|
||||
libv4l? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
mmx? ( >=dev-lang/yasm-1.2 )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( net-misc/wget )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac is license-incompatible with ffmpeg
|
||||
REQUIRED_USE="bindist? ( encode? ( !faac !aacplus ) !openssl )
|
||||
libv4l? ( v4l )
|
||||
fftools_cws2fws? ( zlib )
|
||||
test? ( encode )"
|
||||
|
||||
S=${WORKDIR}/${P/_/-}
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
|
||||
export revision=git-N-${FFMPEG_REVISION}
|
||||
fi
|
||||
epatch "${FILESDIR}/ladspadl.patch"
|
||||
epatch_user
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_FFMPEG_CONF} )
|
||||
|
||||
# options to use as use_enable in the foo[:bar] form.
|
||||
# This will feed configure with $(use_enable foo bar)
|
||||
# or $(use_enable foo foo) if no :bar is set.
|
||||
local ffuse=(
|
||||
bzip2:bzlib cpudetection:runtime-cpudetect debug doc
|
||||
gnutls hardcoded-tables iconv network openssl sdl:ffplay vaapi
|
||||
vdpau zlib
|
||||
)
|
||||
use openssl && myconf+=( --enable-nonfree )
|
||||
|
||||
# Encoders
|
||||
if use encode
|
||||
then
|
||||
ffuse+=( aac:libvo-aacenc amrenc:libvo-amrwbenc mp3:libmp3lame )
|
||||
for i in aacplus faac theora twolame wavpack webp x264 x265 xvid; do
|
||||
ffuse+=( ${i}:lib${i} )
|
||||
done
|
||||
|
||||
# Licensing.
|
||||
if use aac || use amrenc ; then
|
||||
myconf+=( --enable-version3 )
|
||||
fi
|
||||
if use aacplus || use faac ; then
|
||||
myconf+=( --enable-nonfree )
|
||||
fi
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
ffuse+=( cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal opengl )
|
||||
|
||||
# Indevs
|
||||
use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 )
|
||||
for i in alsa oss jack ; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
ffuse+=( libv4l:libv4l2 pulseaudio:libpulse X:x11grab )
|
||||
|
||||
# Outdevs
|
||||
for i in alsa oss sdl ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
|
||||
# libavfilter options
|
||||
ffuse+=( flite:libflite frei0r fontconfig ladspa libass truetype:libfreetype )
|
||||
|
||||
# libswresample options
|
||||
ffuse+=( libsoxr )
|
||||
|
||||
# Threads; we only support pthread for now but ffmpeg supports more
|
||||
ffuse+=( threads:pthreads )
|
||||
|
||||
# Decoders
|
||||
ffuse+=( amr:libopencore-amrwb amr:libopencore-amrnb fdk:libfdk-aac jpeg2k:libopenjpeg )
|
||||
use amr && myconf+=( --enable-version3 )
|
||||
for i in bluray celt gme gsm modplug opus quvi rtmp ssh schroedinger speex vorbis vpx zvbi; do
|
||||
ffuse+=( ${i}:lib${i} )
|
||||
done
|
||||
use fdk && myconf+=( --enable-nonfree )
|
||||
|
||||
for i in "${ffuse[@]}" ; do
|
||||
myconf+=( $(use_enable ${i%:*} ${i#*:}) )
|
||||
done
|
||||
|
||||
# (temporarily) disable non-multilib deps
|
||||
if ! multilib_is_native_abi; then
|
||||
for i in frei0r libquvi; do
|
||||
myconf+=( --disable-${i} )
|
||||
done
|
||||
fi
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
if use pic ; then
|
||||
myconf+=( --enable-pic )
|
||||
# disable asm code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
[[ ${ABI} == x86 ]] && myconf+=( --disable-asm )
|
||||
fi
|
||||
[[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004
|
||||
|
||||
# Try to get cpu type based on CFLAGS.
|
||||
# Bug #172723
|
||||
# We need to do this so that features of that CPU will be better used
|
||||
# If they contain an unknown CPU it will not hurt since ffmpeg's configure
|
||||
# will just ignore it.
|
||||
for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
|
||||
[[ ${i} = native ]] && i="host" # bug #273421
|
||||
myconf+=( --cpu=${i} )
|
||||
break
|
||||
done
|
||||
|
||||
# Mandatory configuration
|
||||
myconf=(
|
||||
--enable-gpl
|
||||
--enable-postproc
|
||||
--enable-avfilter
|
||||
--enable-avresample
|
||||
--disable-stripping
|
||||
"${myconf[@]}"
|
||||
)
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
set -- "${S}/configure" \
|
||||
--prefix="${EPREFIX}/usr" \
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--shlibdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--mandir="${EPREFIX}/usr/share/man" \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--cxx="$(tc-getCXX)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
--extra-cxxflags="${CXXFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake V=1
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
for i in ${FFTOOLS} ; do
|
||||
if use fftools_${i} ; then
|
||||
emake V=1 tools/${i}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake V=1 DESTDIR="${D}" install install-man
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
for i in ${FFTOOLS} ; do
|
||||
if use fftools_${i} ; then
|
||||
dobin tools/${i}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README CREDITS doc/*.txt doc/APIchanges doc/RELEASE_NOTES
|
||||
use doc && dohtml -r doc/*
|
||||
if use examples ; then
|
||||
dodoc -r doc/examples
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \
|
||||
emake V=1 fate
|
||||
}
|
@ -0,0 +1,377 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-2.3.4.ebuild,v 1.1 2014/10/05 06:43:51 aballier Exp $
|
||||
|
||||
EAPI="5"
|
||||
|
||||
# Subslot: libavutil major.libavcodec major.libavformat major
|
||||
# Since FFmpeg ships several libraries, subslot is kind of limited here.
|
||||
# Most consumers will use those three libraries, if a "less used" library
|
||||
# changes its soname, consumers will have to be rebuilt the old way
|
||||
# (preserve-libs).
|
||||
# If, for example, a package does not link to libavformat and only libavformat
|
||||
# changes its ABI then this package will be rebuilt needlessly. Hence, such a
|
||||
# package is free _not_ to := depend on FFmpeg but I would strongly encourage
|
||||
# doing so since such a case is unlikely.
|
||||
FFMPEG_SUBSLOT=52.55.55
|
||||
|
||||
SCM=""
|
||||
if [ "${PV#9999}" != "${PV}" ] ; then
|
||||
SCM="git-2"
|
||||
EGIT_REPO_URI="git://source.ffmpeg.org/ffmpeg.git"
|
||||
fi
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM}
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec"
|
||||
HOMEPAGE="http://ffmpeg.org/"
|
||||
if [ "${PV#9999}" != "${PV}" ] ; then
|
||||
SRC_URI=""
|
||||
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
|
||||
SRC_URI="mirror://gentoo/${P}.tar.bz2"
|
||||
else # Release
|
||||
SRC_URI="http://ffmpeg.org/releases/${P/_/-}.tar.bz2"
|
||||
fi
|
||||
FFMPEG_REVISION="${PV#*_p}"
|
||||
|
||||
LICENSE="GPL-2 amr? ( GPL-3 ) encode? ( aac? ( GPL-3 ) ) samba? ( GPL-3 )"
|
||||
SLOT="0/${FFMPEG_SUBSLOT}"
|
||||
if [ "${PV#9999}" = "${PV}" ] ; then
|
||||
KEYWORDS="~amd64 ~arm ~hppa ~mips ~x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
|
||||
fi
|
||||
IUSE="
|
||||
aac aacplus alsa amr amrenc bindist bluray bs2b +bzip2 cdio celt
|
||||
cpudetection debug doc +encode examples faac fdk flite fontconfig frei0r
|
||||
fribidi gme gnutls gsm +hardcoded-tables +iconv iec61883 ieee1394 jack
|
||||
jpeg2k ladspa libass libcaca libsoxr libv4l modplug mp3 +network openal
|
||||
opengl openssl opus oss pic pulseaudio quvi rtmp samba schroedinger sdl
|
||||
speex ssh static-libs test theora threads truetype twolame v4l vaapi vdpau
|
||||
vorbis vpx wavpack webp X x264 x265 xvid +zlib zvbi
|
||||
"
|
||||
|
||||
ARM_CPU_FEATURES="armv5te armv6 armv6t2 neon armvfp:vfp"
|
||||
MIPS_CPU_FEATURES="mips32r2 mipsdspr1 mipsdspr2 mipsfpu"
|
||||
PPC_CPU_FEATURES="altivec"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 sse4 sse4_2:sse42 xop"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="
|
||||
${ARM_CPU_FEATURES}
|
||||
${MIPS_CPU_FEATURES}
|
||||
${PPC_CPU_FEATURES}
|
||||
${X86_CPU_FEATURES}
|
||||
"
|
||||
|
||||
for i in ${CPU_FEATURES}; do
|
||||
IUSE="${IUSE} ${i%:*}"
|
||||
done
|
||||
|
||||
FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher"
|
||||
|
||||
for i in ${FFTOOLS}; do
|
||||
IUSE="${IUSE} +fftools_$i"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bluray? ( >=media-libs/libbluray-0.3.0-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
celt? ( >=media-libs/celt-0.11.1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
aacplus? ( >=media-libs/libaacplus-2.0.2-r1[${MULTILIB_USEDEP}] )
|
||||
amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.3[${MULTILIB_USEDEP}] )
|
||||
flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] )
|
||||
gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] )
|
||||
iec61883? (
|
||||
>=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
libass? ( >=media-libs/libass-0.10.2[${MULTILIB_USEDEP}] )
|
||||
libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] )
|
||||
libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] )
|
||||
libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] )
|
||||
modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] )
|
||||
openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] )
|
||||
opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] )
|
||||
openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
quvi? ( media-libs/libquvi:0.4[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.6.23-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] )
|
||||
!media-video/qt-faststart
|
||||
!media-libs/libpostproc
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
|
||||
libv4l? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
mmx? ( >=dev-lang/yasm-1.2 )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( net-misc/wget )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac is license-incompatible with ffmpeg
|
||||
REQUIRED_USE="bindist? ( encode? ( !faac !aacplus ) !openssl )
|
||||
libv4l? ( v4l )
|
||||
fftools_cws2fws? ( zlib )
|
||||
test? ( encode )"
|
||||
|
||||
S=${WORKDIR}/${P/_/-}
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
|
||||
export revision=git-N-${FFMPEG_REVISION}
|
||||
fi
|
||||
epatch_user
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_FFMPEG_CONF} )
|
||||
|
||||
# options to use as use_enable in the foo[:bar] form.
|
||||
# This will feed configure with $(use_enable foo bar)
|
||||
# or $(use_enable foo foo) if no :bar is set.
|
||||
local ffuse=(
|
||||
bzip2:bzlib cpudetection:runtime-cpudetect debug doc
|
||||
gnutls hardcoded-tables iconv network openssl samba:libsmbclient
|
||||
sdl:ffplay vaapi vdpau X:xlib zlib
|
||||
)
|
||||
use openssl && myconf+=( --enable-nonfree )
|
||||
use samba && myconf+=( --enable-version3 )
|
||||
|
||||
# Encoders
|
||||
if use encode
|
||||
then
|
||||
ffuse+=( aac:libvo-aacenc amrenc:libvo-amrwbenc mp3:libmp3lame )
|
||||
for i in aacplus faac theora twolame wavpack webp x264 x265 xvid; do
|
||||
ffuse+=( ${i}:lib${i} )
|
||||
done
|
||||
|
||||
# Licensing.
|
||||
if use aac || use amrenc ; then
|
||||
myconf+=( --enable-version3 )
|
||||
fi
|
||||
if use aacplus || use faac ; then
|
||||
myconf+=( --enable-nonfree )
|
||||
fi
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
ffuse+=( cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal opengl )
|
||||
|
||||
# Indevs
|
||||
use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 )
|
||||
for i in alsa oss jack ; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
ffuse+=( libv4l:libv4l2 pulseaudio:libpulse X:x11grab )
|
||||
|
||||
# Outdevs
|
||||
for i in alsa oss sdl ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
|
||||
# libavfilter options
|
||||
ffuse+=( bs2b:libbs2b flite:libflite frei0r fribidi:libfribidi fontconfig ladspa libass truetype:libfreetype )
|
||||
|
||||
# libswresample options
|
||||
ffuse+=( libsoxr )
|
||||
|
||||
# Threads; we only support pthread for now but ffmpeg supports more
|
||||
ffuse+=( threads:pthreads )
|
||||
|
||||
# Decoders
|
||||
ffuse+=( amr:libopencore-amrwb amr:libopencore-amrnb fdk:libfdk-aac jpeg2k:libopenjpeg )
|
||||
use amr && myconf+=( --enable-version3 )
|
||||
for i in bluray celt gme gsm modplug opus quvi rtmp ssh schroedinger speex vorbis vpx zvbi; do
|
||||
ffuse+=( ${i}:lib${i} )
|
||||
done
|
||||
use fdk && myconf+=( --enable-nonfree )
|
||||
|
||||
for i in "${ffuse[@]}" ; do
|
||||
myconf+=( $(use_enable ${i%:*} ${i#*:}) )
|
||||
done
|
||||
|
||||
# (temporarily) disable non-multilib deps
|
||||
if ! multilib_is_native_abi; then
|
||||
for i in frei0r ; do
|
||||
myconf+=( --disable-${i} )
|
||||
done
|
||||
fi
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
if use pic ; then
|
||||
myconf+=( --enable-pic )
|
||||
# disable asm code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
[[ ${ABI} == x86 ]] && myconf+=( --disable-asm )
|
||||
fi
|
||||
[[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004
|
||||
|
||||
# Try to get cpu type based on CFLAGS.
|
||||
# Bug #172723
|
||||
# We need to do this so that features of that CPU will be better used
|
||||
# If they contain an unknown CPU it will not hurt since ffmpeg's configure
|
||||
# will just ignore it.
|
||||
for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
|
||||
[[ ${i} = native ]] && i="host" # bug #273421
|
||||
myconf+=( --cpu=${i} )
|
||||
break
|
||||
done
|
||||
|
||||
# Mandatory configuration
|
||||
myconf=(
|
||||
--enable-gpl
|
||||
--enable-postproc
|
||||
--enable-avfilter
|
||||
--enable-avresample
|
||||
--disable-stripping
|
||||
"${myconf[@]}"
|
||||
)
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
set -- "${S}/configure" \
|
||||
--prefix="${EPREFIX}/usr" \
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--shlibdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--mandir="${EPREFIX}/usr/share/man" \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--cxx="$(tc-getCXX)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
--extra-cxxflags="${CXXFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake V=1
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
for i in ${FFTOOLS} ; do
|
||||
if use fftools_${i} ; then
|
||||
emake V=1 tools/${i}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake V=1 DESTDIR="${D}" install install-man
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
for i in ${FFTOOLS} ; do
|
||||
if use fftools_${i} ; then
|
||||
dobin tools/${i}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges
|
||||
[ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES"
|
||||
use doc && dohtml -r doc/*
|
||||
if use examples ; then
|
||||
dodoc -r doc/examples
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \
|
||||
emake V=1 fate
|
||||
}
|
@ -0,0 +1,378 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/media-video/ffmpeg/ffmpeg-2.4.1.ebuild,v 1.1 2014/10/05 07:15:05 aballier Exp $
|
||||
|
||||
EAPI="5"
|
||||
|
||||
# Subslot: libavutil major.libavcodec major.libavformat major
|
||||
# Since FFmpeg ships several libraries, subslot is kind of limited here.
|
||||
# Most consumers will use those three libraries, if a "less used" library
|
||||
# changes its soname, consumers will have to be rebuilt the old way
|
||||
# (preserve-libs).
|
||||
# If, for example, a package does not link to libavformat and only libavformat
|
||||
# changes its ABI then this package will be rebuilt needlessly. Hence, such a
|
||||
# package is free _not_ to := depend on FFmpeg but I would strongly encourage
|
||||
# doing so since such a case is unlikely.
|
||||
FFMPEG_SUBSLOT=54.56.56
|
||||
|
||||
SCM=""
|
||||
if [ "${PV#9999}" != "${PV}" ] ; then
|
||||
SCM="git-2"
|
||||
EGIT_REPO_URI="git://source.ffmpeg.org/ffmpeg.git"
|
||||
fi
|
||||
|
||||
inherit eutils flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM}
|
||||
|
||||
DESCRIPTION="Complete solution to record, convert and stream audio and video. Includes libavcodec"
|
||||
HOMEPAGE="http://ffmpeg.org/"
|
||||
if [ "${PV#9999}" != "${PV}" ] ; then
|
||||
SRC_URI=""
|
||||
elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot
|
||||
SRC_URI="mirror://gentoo/${P}.tar.bz2"
|
||||
else # Release
|
||||
SRC_URI="http://ffmpeg.org/releases/${P/_/-}.tar.bz2"
|
||||
fi
|
||||
FFMPEG_REVISION="${PV#*_p}"
|
||||
|
||||
LICENSE="GPL-2 amr? ( GPL-3 ) encode? ( aac? ( GPL-3 ) ) samba? ( GPL-3 )"
|
||||
SLOT="0/${FFMPEG_SUBSLOT}"
|
||||
if [ "${PV#9999}" = "${PV}" ] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux"
|
||||
fi
|
||||
IUSE="
|
||||
aac aacplus alsa amr amrenc bindist bluray bs2b +bzip2 cdio celt
|
||||
cpudetection debug doc +encode examples faac fdk flite fontconfig frei0r
|
||||
fribidi gme gnutls gsm +hardcoded-tables +iconv iec61883 ieee1394 jack
|
||||
jpeg2k ladspa libass libcaca libsoxr libv4l lzma modplug mp3 +network
|
||||
openal opengl openssl opus oss pic pulseaudio quvi rtmp samba schroedinger
|
||||
sdl speex ssh static-libs test theora threads truetype twolame v4l vaapi
|
||||
vdpau vorbis vpx wavpack webp X x264 x265 xvid +zlib zvbi
|
||||
"
|
||||
|
||||
ARM_CPU_FEATURES="armv5te armv6 armv6t2 neon armvfp:vfp"
|
||||
MIPS_CPU_FEATURES="mips32r2 mipsdspr1 mipsdspr2 mipsfpu"
|
||||
PPC_CPU_FEATURES="altivec"
|
||||
X86_CPU_FEATURES="3dnow:amd3dnow 3dnowext:amd3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 sse4 sse4_2:sse42 xop"
|
||||
|
||||
# String for CPU features in the useflag[:configure_option] form
|
||||
# if :configure_option isn't set, it will use 'useflag' as configure option
|
||||
CPU_FEATURES="
|
||||
${ARM_CPU_FEATURES}
|
||||
${MIPS_CPU_FEATURES}
|
||||
${PPC_CPU_FEATURES}
|
||||
${X86_CPU_FEATURES}
|
||||
"
|
||||
|
||||
for i in ${CPU_FEATURES}; do
|
||||
IUSE="${IUSE} ${i%:*}"
|
||||
done
|
||||
|
||||
FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher"
|
||||
|
||||
for i in ${FFTOOLS}; do
|
||||
IUSE="${IUSE} +fftools_$i"
|
||||
done
|
||||
|
||||
RDEPEND="
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] )
|
||||
amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] )
|
||||
bluray? ( >=media-libs/libbluray-0.3.0-r1[${MULTILIB_USEDEP}] )
|
||||
bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] )
|
||||
bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] )
|
||||
cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] )
|
||||
celt? ( >=media-libs/celt-0.11.1-r1[${MULTILIB_USEDEP}] )
|
||||
encode? (
|
||||
aac? ( >=media-libs/vo-aacenc-0.1.3[${MULTILIB_USEDEP}] )
|
||||
aacplus? ( >=media-libs/libaacplus-2.0.2-r1[${MULTILIB_USEDEP}] )
|
||||
amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] )
|
||||
faac? ( >=media-libs/faac-1.28-r3[${MULTILIB_USEDEP}] )
|
||||
mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] )
|
||||
theora? (
|
||||
>=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] )
|
||||
wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] )
|
||||
webp? ( >=media-libs/libwebp-0.3.0[${MULTILIB_USEDEP}] )
|
||||
x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] )
|
||||
x265? ( >=media-libs/x265-1.2:=[${MULTILIB_USEDEP}] )
|
||||
xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
fdk? ( >=media-libs/fdk-aac-0.1.3[${MULTILIB_USEDEP}] )
|
||||
flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] )
|
||||
frei0r? ( media-plugins/frei0r-plugins )
|
||||
fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] )
|
||||
gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( >=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}] )
|
||||
gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] )
|
||||
iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] )
|
||||
iec61883? (
|
||||
>=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
ieee1394? (
|
||||
>=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}]
|
||||
)
|
||||
jack? ( >=media-sound/jack-audio-connection-kit-0.121.3-r1[${MULTILIB_USEDEP}] )
|
||||
jpeg2k? ( >=media-libs/openjpeg-1.5.0:0[${MULTILIB_USEDEP}] )
|
||||
libass? ( >=media-libs/libass-0.10.2[${MULTILIB_USEDEP}] )
|
||||
libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] )
|
||||
libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] )
|
||||
libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] )
|
||||
lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] )
|
||||
modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] )
|
||||
openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] )
|
||||
opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] )
|
||||
openssl? ( >=dev-libs/openssl-1.0.1h-r2[${MULTILIB_USEDEP}] )
|
||||
opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
|
||||
quvi? ( media-libs/libquvi:0.4[${MULTILIB_USEDEP}] )
|
||||
rtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] )
|
||||
samba? ( >=net-fs/samba-3.6.23-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=media-libs/schroedinger-1.0.11-r1[${MULTILIB_USEDEP}] )
|
||||
sdl? ( >=media-libs/libsdl-1.2.15-r4[sound,video,${MULTILIB_USEDEP}] )
|
||||
speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] )
|
||||
ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] )
|
||||
truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] )
|
||||
vaapi? ( >=x11-libs/libva-1.2.1-r1[${MULTILIB_USEDEP}] )
|
||||
vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] )
|
||||
vorbis? (
|
||||
>=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}]
|
||||
>=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
vpx? ( >=media-libs/libvpx-1.2.0_pre20130625[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
>=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXfixes-5.0.1[${MULTILIB_USEDEP}]
|
||||
>=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}]
|
||||
)
|
||||
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
|
||||
zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] )
|
||||
!media-video/qt-faststart
|
||||
!media-libs/libpostproc
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=sys-devel/make-3.81
|
||||
doc? ( app-text/texi2html )
|
||||
fontconfig? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
gnutls? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ieee1394? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] )
|
||||
libv4l? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
mmx? ( >=dev-lang/yasm-1.2 )
|
||||
rtmp? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
schroedinger? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
test? ( net-misc/wget )
|
||||
truetype? ( >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}] )
|
||||
v4l? ( sys-kernel/linux-headers )
|
||||
"
|
||||
|
||||
RDEPEND="${RDEPEND}
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-medialibs-20140508-r3
|
||||
!app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)] )"
|
||||
|
||||
# faac is license-incompatible with ffmpeg
|
||||
REQUIRED_USE="bindist? ( encode? ( !faac !aacplus ) !openssl )
|
||||
libv4l? ( v4l )
|
||||
fftools_cws2fws? ( zlib )
|
||||
test? ( encode )"
|
||||
|
||||
S=${WORKDIR}/${P/_/-}
|
||||
|
||||
MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/libavutil/avconfig.h
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot
|
||||
export revision=git-N-${FFMPEG_REVISION}
|
||||
fi
|
||||
epatch_user
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=( ${EXTRA_FFMPEG_CONF} )
|
||||
|
||||
# options to use as use_enable in the foo[:bar] form.
|
||||
# This will feed configure with $(use_enable foo bar)
|
||||
# or $(use_enable foo foo) if no :bar is set.
|
||||
local ffuse=(
|
||||
bzip2:bzlib cpudetection:runtime-cpudetect debug doc
|
||||
gnutls hardcoded-tables iconv lzma network openssl samba:libsmbclient
|
||||
sdl:ffplay vaapi vdpau X:xlib zlib
|
||||
)
|
||||
use openssl && myconf+=( --enable-nonfree )
|
||||
use samba && myconf+=( --enable-version3 )
|
||||
|
||||
# Encoders
|
||||
if use encode
|
||||
then
|
||||
ffuse+=( aac:libvo-aacenc amrenc:libvo-amrwbenc mp3:libmp3lame )
|
||||
for i in aacplus faac theora twolame wavpack webp x264 x265 xvid; do
|
||||
ffuse+=( ${i}:lib${i} )
|
||||
done
|
||||
|
||||
# Licensing.
|
||||
if use aac || use amrenc ; then
|
||||
myconf+=( --enable-version3 )
|
||||
fi
|
||||
if use aacplus || use faac ; then
|
||||
myconf+=( --enable-nonfree )
|
||||
fi
|
||||
else
|
||||
myconf+=( --disable-encoders )
|
||||
fi
|
||||
|
||||
# libavdevice options
|
||||
ffuse+=( cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal opengl )
|
||||
|
||||
# Indevs
|
||||
use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 )
|
||||
for i in alsa oss jack ; do
|
||||
use ${i} || myconf+=( --disable-indev=${i} )
|
||||
done
|
||||
ffuse+=( libv4l:libv4l2 pulseaudio:libpulse X:x11grab )
|
||||
|
||||
# Outdevs
|
||||
for i in alsa oss sdl ; do
|
||||
use ${i} || myconf+=( --disable-outdev=${i} )
|
||||
done
|
||||
|
||||
# libavfilter options
|
||||
ffuse+=( bs2b:libbs2b flite:libflite frei0r fribidi:libfribidi fontconfig ladspa libass truetype:libfreetype )
|
||||
|
||||
# libswresample options
|
||||
ffuse+=( libsoxr )
|
||||
|
||||
# Threads; we only support pthread for now but ffmpeg supports more
|
||||
ffuse+=( threads:pthreads )
|
||||
|
||||
# Decoders
|
||||
ffuse+=( amr:libopencore-amrwb amr:libopencore-amrnb fdk:libfdk-aac jpeg2k:libopenjpeg )
|
||||
use amr && myconf+=( --enable-version3 )
|
||||
for i in bluray celt gme gsm modplug opus quvi rtmp ssh schroedinger speex vorbis vpx zvbi; do
|
||||
ffuse+=( ${i}:lib${i} )
|
||||
done
|
||||
use fdk && myconf+=( --enable-nonfree )
|
||||
|
||||
for i in "${ffuse[@]}" ; do
|
||||
myconf+=( $(use_enable ${i%:*} ${i#*:}) )
|
||||
done
|
||||
|
||||
# (temporarily) disable non-multilib deps
|
||||
if ! multilib_is_native_abi; then
|
||||
for i in frei0r ; do
|
||||
myconf+=( --disable-${i} )
|
||||
done
|
||||
fi
|
||||
|
||||
# CPU features
|
||||
for i in ${CPU_FEATURES}; do
|
||||
use ${i%:*} || myconf+=( --disable-${i#*:} )
|
||||
done
|
||||
if use pic ; then
|
||||
myconf+=( --enable-pic )
|
||||
# disable asm code if PIC is required
|
||||
# as the provided asm decidedly is not PIC for x86.
|
||||
[[ ${ABI} == x86 ]] && myconf+=( --disable-asm )
|
||||
fi
|
||||
[[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004
|
||||
|
||||
# Try to get cpu type based on CFLAGS.
|
||||
# Bug #172723
|
||||
# We need to do this so that features of that CPU will be better used
|
||||
# If they contain an unknown CPU it will not hurt since ffmpeg's configure
|
||||
# will just ignore it.
|
||||
for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do
|
||||
[[ ${i} = native ]] && i="host" # bug #273421
|
||||
myconf+=( --cpu=${i} )
|
||||
break
|
||||
done
|
||||
|
||||
# Mandatory configuration
|
||||
myconf=(
|
||||
--enable-gpl
|
||||
--enable-postproc
|
||||
--enable-avfilter
|
||||
--enable-avresample
|
||||
--disable-stripping
|
||||
"${myconf[@]}"
|
||||
)
|
||||
|
||||
# cross compile support
|
||||
if tc-is-cross-compiler ; then
|
||||
myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- )
|
||||
case ${CHOST} in
|
||||
*freebsd*)
|
||||
myconf+=( --target-os=freebsd )
|
||||
;;
|
||||
mingw32*)
|
||||
myconf+=( --target-os=mingw32 )
|
||||
;;
|
||||
*linux*)
|
||||
myconf+=( --target-os=linux )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
set -- "${S}/configure" \
|
||||
--prefix="${EPREFIX}/usr" \
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--shlibdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--mandir="${EPREFIX}/usr/share/man" \
|
||||
--enable-shared \
|
||||
--cc="$(tc-getCC)" \
|
||||
--cxx="$(tc-getCXX)" \
|
||||
--ar="$(tc-getAR)" \
|
||||
--optflags="${CFLAGS}" \
|
||||
--extra-cflags="${CFLAGS}" \
|
||||
--extra-cxxflags="${CXXFLAGS}" \
|
||||
$(use_enable static-libs static) \
|
||||
"${myconf[@]}"
|
||||
echo "${@}"
|
||||
"${@}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake V=1
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
for i in ${FFTOOLS} ; do
|
||||
if use fftools_${i} ; then
|
||||
emake V=1 tools/${i}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
emake V=1 DESTDIR="${D}" install install-man
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
for i in ${FFTOOLS} ; do
|
||||
if use fftools_${i} ; then
|
||||
dobin tools/${i}
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges
|
||||
[ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES"
|
||||
use doc && dohtml -r doc/*
|
||||
if use examples ; then
|
||||
dodoc -r doc/examples
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \
|
||||
emake V=1 fate
|
||||
}
|
@ -1 +1 @@
|
||||
Sat, 04 Oct 2014 20:37:02 +0000
|
||||
Sun, 05 Oct 2014 17:37:04 +0000
|
||||
|
@ -0,0 +1,96 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet href="/xsl/glsa.xsl" type="text/xsl"?>
|
||||
<?xml-stylesheet href="/xsl/guide.xsl" type="text/xsl"?>
|
||||
<!DOCTYPE glsa SYSTEM "http://www.gentoo.org/dtd/glsa.dtd">
|
||||
<glsa id="201410-01">
|
||||
<title>Bash: Multiple vulnerabilities</title>
|
||||
<synopsis>Multiple parsing flaws in Bash could allow remote attackers to
|
||||
inject code or cause a Denial of Service condition.
|
||||
</synopsis>
|
||||
<product type="ebuild">bash</product>
|
||||
<announced>October 04, 2014</announced>
|
||||
<revised>October 04, 2014: 1</revised>
|
||||
<bug>523742</bug>
|
||||
<bug>524256</bug>
|
||||
<access>local, remote</access>
|
||||
<affected>
|
||||
<package name="app-shells/bash" auto="yes" arch="*">
|
||||
<unaffected range="rge">3.1_p22</unaffected>
|
||||
<unaffected range="rge">3.2_p56</unaffected>
|
||||
<unaffected range="rge">4.0_p43</unaffected>
|
||||
<unaffected range="rge">4.1_p16</unaffected>
|
||||
<unaffected range="ge">4.2_p52</unaffected>
|
||||
<vulnerable range="lt">4.2_p52</vulnerable>
|
||||
</package>
|
||||
</affected>
|
||||
<background>
|
||||
<p>Bash is the standard GNU Bourne Again SHell.</p>
|
||||
</background>
|
||||
<description>
|
||||
<p>Florian Weimer, Todd Sabin, Michal Zalewski et al. discovered further
|
||||
parsing flaws in Bash. The unaffected Gentoo packages listed in this GLSA
|
||||
contain the official patches to fix the issues tracked as CVE-2014-6277,
|
||||
CVE-2014-7186, and CVE-2014-7187. Furthermore, the official patch known
|
||||
as “function prefix patch” is included which prevents the
|
||||
exploitation of CVE-2014-6278.
|
||||
</p>
|
||||
</description>
|
||||
<impact type="high">
|
||||
<p>A remote attacker could exploit these vulnerabilities to execute
|
||||
arbitrary commands or cause a Denial of Service condition via various
|
||||
vectors.
|
||||
</p>
|
||||
</impact>
|
||||
<workaround>
|
||||
<p>There is no known workaround at this time.</p>
|
||||
</workaround>
|
||||
<resolution>
|
||||
<p>All Bash 3.1 users should upgrade to the latest version:</p>
|
||||
|
||||
<code>
|
||||
# emerge --sync
|
||||
# emerge --ask --oneshot --verbose ">=app-shells/bash-3.1_p22:3.1"
|
||||
</code>
|
||||
|
||||
<p>All Bash 3.2 users should upgrade to the latest version:</p>
|
||||
|
||||
<code>
|
||||
# emerge --sync
|
||||
# emerge --ask --oneshot --verbose ">=app-shells/bash-3.2_p56:3.2"
|
||||
</code>
|
||||
|
||||
<p>All Bash 4.0 users should upgrade to the latest version:</p>
|
||||
|
||||
<code>
|
||||
# emerge --sync
|
||||
# emerge --ask --oneshot --verbose ">=app-shells/bash-4.0_p43:4.0"
|
||||
</code>
|
||||
|
||||
<p>All Bash 4.1 users should upgrade to the latest version:</p>
|
||||
|
||||
<code>
|
||||
# emerge --sync
|
||||
# emerge --ask --oneshot --verbose ">=app-shells/bash-4.1_p16:4.1"
|
||||
</code>
|
||||
|
||||
<p>All Bash 4.2 users should upgrade to the latest version:</p>
|
||||
|
||||
<code>
|
||||
# emerge --sync
|
||||
# emerge --ask --oneshot --verbose ">=app-shells/bash-4.2_p52"
|
||||
</code>
|
||||
|
||||
</resolution>
|
||||
<references>
|
||||
<uri link="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2014-6277">CVE-2014-6277</uri>
|
||||
<uri link="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2014-6278">CVE-2014-6278</uri>
|
||||
<uri link="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2014-7186">CVE-2014-7186</uri>
|
||||
<uri link="http://nvd.nist.gov/nvd.cfm?cvename=CVE-2014-7187">CVE-2014-7187</uri>
|
||||
</references>
|
||||
<metadata tag="requester" timestamp="Sat, 04 Oct 2014 17:29:28 +0000">
|
||||
keytoaster
|
||||
</metadata>
|
||||
<metadata tag="submitter" timestamp="Sat, 04 Oct 2014 22:13:43 +0000">
|
||||
keytoaster
|
||||
</metadata>
|
||||
</glsa>
|
@ -1 +1 @@
|
||||
Sat, 04 Oct 2014 20:37:02 +0000
|
||||
Sun, 05 Oct 2014 17:37:04 +0000
|
||||
|
@ -1,14 +1,14 @@
|
||||
DEFINED_PHASES=compile configure install postinst postrm preinst prepare unpack
|
||||
DEPEND=>=app-accessibility/at-spi2-atk-2.10:2 >=app-accessibility/at-spi2-core-2.10:2[introspection] >=dev-libs/atk-2.10 >=dev-libs/glib-2.28:2 >=dev-python/pygobject-3.10:3[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=x11-libs/gtk+-3.6.2:3[introspection] braille? ( >=app-accessibility/brltty-5.0-r3[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-libs/liblouis[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] ) python_targets_python3_3? ( >=dev-lang/python-3.3.2-r2:3.3[threads] ) dev-lang/python-exec:=[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=dev-util/intltool-0.50 virtual/pkgconfig app-arch/xz-utils >=sys-apps/sed-4
|
||||
DEPEND=>=app-accessibility/at-spi2-atk-2.10:2 >=app-accessibility/at-spi2-core-2.10:2[introspection] >=dev-libs/atk-2.10 >=dev-libs/glib-2.28:2 >=dev-python/pygobject-3.10:3[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=x11-libs/gtk+-3.6.2:3[introspection] braille? ( >=app-accessibility/brltty-5.0-r3[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-libs/liblouis[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] ) python_targets_python3_3? ( >=dev-lang/python-3.3.2-r2:3.3[threads] ) dev-lang/python-exec:=[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=dev-util/intltool-0.50 virtual/pkgconfig app-arch/xz-utils >=sys-apps/sed-4
|
||||
DESCRIPTION=Extensible screen reader that provides access to the desktop
|
||||
EAPI=5
|
||||
HOMEPAGE=https://wiki.gnome.org/Projects/Orca
|
||||
IUSE=+braille python_targets_python3_3
|
||||
KEYWORDS=~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd
|
||||
LICENSE=LGPL-2.1+ CC-BY-SA-3.0
|
||||
RDEPEND=>=app-accessibility/at-spi2-atk-2.10:2 >=app-accessibility/at-spi2-core-2.10:2[introspection] >=dev-libs/atk-2.10 >=dev-libs/glib-2.28:2 >=dev-python/pygobject-3.10:3[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=x11-libs/gtk+-3.6.2:3[introspection] braille? ( >=app-accessibility/brltty-5.0-r3[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-libs/liblouis[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] ) python_targets_python3_3? ( >=dev-lang/python-3.3.2-r2:3.3[threads] ) dev-lang/python-exec:=[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=app-accessibility/speech-dispatcher-0.8[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-libs/atk[introspection] dev-python/pyatspi[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-python/setproctitle[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] x11-libs/libwnck:3[introspection] x11-libs/pango[introspection]
|
||||
RDEPEND=>=app-accessibility/at-spi2-atk-2.10:2 >=app-accessibility/at-spi2-core-2.10:2[introspection] >=dev-libs/atk-2.10 >=dev-libs/glib-2.28:2 >=dev-python/pygobject-3.10:3[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=x11-libs/gtk+-3.6.2:3[introspection] braille? ( >=app-accessibility/brltty-5.0-r3[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-libs/liblouis[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] ) python_targets_python3_3? ( >=dev-lang/python-3.3.2-r2:3.3[threads] ) dev-lang/python-exec:=[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] >=app-accessibility/speech-dispatcher-0.8[python,python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-libs/atk[introspection] dev-python/pyatspi[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] dev-python/setproctitle[python_targets_python3_3(-)?,-python_single_target_python3_3(-)] x11-libs/libwnck:3[introspection] x11-libs/pango[introspection]
|
||||
REQUIRED_USE=|| ( python_targets_python3_3 )
|
||||
SLOT=0
|
||||
SRC_URI=mirror://gnome/sources/orca/3.12/orca-3.12.3.tar.xz
|
||||
_eclasses_=eutils 32548a82e42dc26e3312581476d2f20c fdo-mime 0acfe1a88fd8751a1d5dc671168219fa gnome.org 8fef8f967214f56e08fa92d61163d891 gnome2 9637c29fc715b17a6328f24251129557 gnome2-utils f658eba3cc594a21cf6eef4af47daa90 libtool 52d0e17251d04645ffaa61bfdd858944 multibuild 46527a4656956da3d58acff72c9b59b1 multilib 3bf24e6abb9b76d9f6c20600f0b716bf multiprocessing d7f2985a2c76c365ee20269db5261414 python-r1 75e5c82b55dcb208a0a8f4ab8847e731 python-utils-r1 47dda904cf91c61f45b564d9f834fde1 toolchain-funcs 0f1760274637a138b99bb649202ea402 versionator cd0bcdb170807e4a1984115e9d53a26f
|
||||
_md5_=8b4143113a24a5c21828ca3564234c0d
|
||||
_md5_=7fbde39b93fac69053ffef1b6a6c2023
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue