diff options
Diffstat (limited to 'multimedia/vlc/patches/patch-as')
-rw-r--r-- | multimedia/vlc/patches/patch-as | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/multimedia/vlc/patches/patch-as b/multimedia/vlc/patches/patch-as deleted file mode 100644 index d5c7feb56f1..00000000000 --- a/multimedia/vlc/patches/patch-as +++ /dev/null @@ -1,110 +0,0 @@ -$NetBSD: patch-as,v 1.1 2011/01/24 18:54:04 drochner Exp $ - ---- modules/misc/inhibit/xscreensaver.c~ 2010-04-13 09:22:27.000000000 +0900 -+++ modules/misc/inhibit/xscreensaver.c 2011-01-08 23:03:09.000000000 +0900 -@@ -39,7 +39,9 @@ - #include <sys/wait.h> - #include <fcntl.h> - #include <signal.h> -+#ifdef _POSIX_SPAWN - #include <spawn.h> -+#endif - - /***************************************************************************** - * Local prototypes -@@ -53,12 +55,16 @@ - struct vlc_inhibit_sys - { - vlc_timer_t timer; -+#ifdef _POSIX_SPAWN - posix_spawn_file_actions_t actions; - posix_spawnattr_t attr; - int nullfd; -+#endif - }; - -+#ifdef _POSIX_SPAWN - extern char **environ; -+#endif - - /***************************************************************************** - * Module descriptor -@@ -88,6 +94,7 @@ - } - p_ih->inhibit = Inhibit; - -+#ifdef _POSIX_SPAWN - int fd = vlc_open ("/dev/null", O_WRONLY); - posix_spawn_file_actions_init (&p_sys->actions); - if (fd != -1) -@@ -103,6 +110,7 @@ - sigemptyset (&set); - posix_spawnattr_setsigmask (&p_sys->attr, &set); - -+#endif - return VLC_SUCCESS; - } - -@@ -115,10 +123,12 @@ - vlc_inhibit_sys_t *p_sys = p_ih->p_sys; - - vlc_timer_destroy( p_sys->timer ); -+#ifdef _POSIX_SPAWN - if (p_sys->nullfd != -1) - close (p_sys->nullfd); - posix_spawnattr_destroy (&p_sys->attr); - posix_spawn_file_actions_destroy (&p_sys->actions); -+#endif - free( p_sys ); - } - -@@ -131,15 +141,49 @@ - /***************************************************************************** - * Execute: Spawns a process using execv() - *****************************************************************************/ -+#ifdef _POSIX_SPAWN - static void Execute (vlc_inhibit_t *p_ih, const char *const *argv) -+# else -+static void Execute (vlc_inhibit_t *p_ih, const char *const *ppsz_args) -+#endif - { -+#ifdef _POSIX_SPAWN - vlc_inhibit_sys_t *p_sys = p_ih->p_sys; - pid_t pid; - - if (posix_spawnp (&pid, argv[0], &p_sys->actions, &p_sys->attr, - (char **)argv, environ) == 0) -+#else -+ pid_t pid = fork(); -+ switch ( pid ) -+#endif - { -+#ifdef _POSIX_SPAWN - while (waitpid (pid, NULL, 0) != pid); -+#else -+ case 0: /* we're the child */ -+ { -+ sigset_t set; -+ sigemptyset (&set); -+ pthread_sigmask (SIG_SETMASK, &set, NULL); -+ -+ /* We don't want output */ -+ if( ( freopen( "/dev/null", "w", stdout ) != NULL ) -+ && ( freopen( "/dev/null", "w", stderr ) != NULL ) ) -+ execv( ppsz_args[0] , (char *const *)ppsz_args ); -+ /* If the file we want to execute doesn't exist we exit() */ -+ exit( EXIT_FAILURE ); -+ } -+ case -1: /* we're the error */ -+ msg_Dbg( p_ih, "Couldn't fork() while launching %s", -+ ppsz_args[0] ); -+ break; -+ default: /* we're the parent */ -+ /* Wait for the child to exit. -+ * We will not deadlock because we ran "/bin/sh &" */ -+ while( waitpid( pid, NULL, 0 ) != pid); -+ break; -+#endif - } - } - |