Package: vlc
Version: 2.1.2-2+b2
Severity: important
Tags: patch
User: debian-h...@lists.debian.org
Usertags: hurd

On Hurd, due to a missing implementation _POSIX_TIMERS = 0,
_POSIX_MONOTONIC_CLOCK [0] and _POSIX_CLOCK_SELECTION = 200809L. Such
combination is considered non POSIX-compliant by vlc upstream which
don't accept patches to workaround it. More info at [1,2].

Attached debdiff also disables oss, cdda and vcd on hurd-i386.

[0] 
http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/hurd-i386/local-clock_gettime_MONOTONIC.diff?revision=59
51&view=markup
[1] https://lists.debian.org/debian-hurd/2014/02/msg00112.html
[2] https://lists.debian.org/debian-hurd/2014/02/msg00118.html

Thanks for considering.
diff -Nru vlc-2.1.2/debian/patches/hurd.patch 
vlc-2.1.2/debian/patches/hurd.patch
--- vlc-2.1.2/debian/patches/hurd.patch 1970-01-01 01:00:00.000000000 +0100
+++ vlc-2.1.2/debian/patches/hurd.patch 2014-02-16 18:58:36.000000000 +0100
@@ -0,0 +1,40 @@
+Description: Fix FTBFS on GNU/Hurd
+ On Hurd, due to a missing implementation _POSIX_TIMERS = 0,
+ _POSIX_MONOTONIC_CLOCK [0] and _POSIX_CLOCK_SELECTION = 200809L. Such
+ combination is considered non POSIX-compliant by vlc upstream which
+ don't accept patches to workaround it. More info at [1,2].
+ .
+ [0] 
http://anonscm.debian.org/viewvc/pkg-glibc/glibc-package/trunk/debian/patches/hurd-i386/local-clock_gettime_MONOTONIC.diff?revision=5951&view=markup
+ [1] https://lists.debian.org/debian-hurd/2014/02/msg00112.html
+ [2] https://lists.debian.org/debian-hurd/2014/02/msg00118.html
+Author: Gabriele Giacone <1o5g4...@gmail.com>
+Forwarded: not-needed
+--- a/src/posix/thread.c
++++ b/src/posix/thread.c
+@@ -327,7 +327,7 @@ void vlc_cond_init (vlc_cond_t *p_condva
+ 
+     if (unlikely(pthread_condattr_init (&attr)))
+         abort ();
+-#if (_POSIX_CLOCK_SELECTION > 0)
++#if (_POSIX_TIMERS > 0) && (_POSIX_CLOCK_SELECTION > 0)
+     vlc_clock_setup ();
+     pthread_condattr_setclock (&attr, vlc_clock_id);
+ #endif
+@@ -929,7 +929,7 @@ mtime_t mdate (void)
+  */
+ void mwait (mtime_t deadline)
+ {
+-#if (_POSIX_CLOCK_SELECTION > 0)
++#if (_POSIX_TIMERS > 0) && (_POSIX_CLOCK_SELECTION > 0)
+     vlc_clock_setup ();
+     /* If the deadline is already elapsed, or within the clock precision,
+      * do not even bother the system timer. */
+@@ -956,7 +956,7 @@ void msleep (mtime_t delay)
+ {
+     struct timespec ts = mtime_to_ts (delay);
+ 
+-#if (_POSIX_CLOCK_SELECTION > 0)
++#if (_POSIX_TIMERS > 0) && (_POSIX_CLOCK_SELECTION > 0)
+     vlc_clock_setup ();
+     while (clock_nanosleep (vlc_clock_id, 0, &ts, &ts) == EINTR);
+ 
diff -Nru vlc-2.1.2/debian/patches/series vlc-2.1.2/debian/patches/series
--- vlc-2.1.2/debian/patches/series     2013-12-21 22:52:19.000000000 +0100
+++ vlc-2.1.2/debian/patches/series     2014-02-21 22:19:16.000000000 +0100
@@ -1 +1,2 @@
 pnap-grammar.patch
+hurd.patch
diff -Nru vlc-2.1.2/debian/rules vlc-2.1.2/debian/rules
--- vlc-2.1.2/debian/rules      2013-12-21 22:52:19.000000000 +0100
+++ vlc-2.1.2/debian/rules      2014-02-21 22:13:57.000000000 +0100
@@ -78,7 +78,6 @@
        --enable-notify \
        --enable-ogg \
        --enable-opus \
-       --enable-oss \
        --enable-pulse \
        --enable-qt \
        --enable-realrtsp \
@@ -95,7 +94,6 @@
        --enable-theora \
        --enable-twolame \
        --enable-upnp \
-       --enable-vcd \
        --enable-vcdx \
        --enable-vorbis \
        --enable-x264 \
@@ -186,6 +184,23 @@
 removeplugins += libv4l2
 endif
 
+# Hurd specific flags
+ifeq (,$(filter-out hurd,$(DEB_HOST_ARCH_OS)))
+confflags += \
+       --disable-oss \
+       --disable-vcd
+removeplugins += \
+       oss \
+       cdda \
+       vcd \
+       $(NULL)
+else
+confflags += \
+       --enable-oss \
+       --enable-vcd \
+       $(NULL)
+endif
+
 # Linux amd64 and i386 specific flags
 ifeq (,$(filter-out amd64 i386,$(DEB_HOST_ARCH)))
 confflags += --enable-crystalhd

Reply via email to