aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testing/vdr/APKBUILD53
-rw-r--r--testing/vdr/Make.config12
-rw-r--r--testing/vdr/musl-compat.patch182
3 files changed, 247 insertions, 0 deletions
diff --git a/testing/vdr/APKBUILD b/testing/vdr/APKBUILD
new file mode 100644
index 0000000000..3dadd97575
--- /dev/null
+++ b/testing/vdr/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer:
+pkgname=vdr
+pkgver=2.1.6
+pkgrel=0
+pkgdesc="Video Disk Recorde"
+url="http://www.tvdr.de/"
+arch="all"
+license="GPL2"
+depends=""
+depends_dev="fontconfig-dev freetype-dev gettext-dev libjpeg-turbo-dev
+ fribidi-dev libcap-dev"
+makedepends="$depends_dev perl"
+install=""
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+source="http://projects.vdr-developer.org/git/vdr.git/snapshot/vdr-2.1.6.tar.bz2
+ musl-compat.patch
+ Make.config"
+
+_builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ cp $srcdir/Make.config \
+ $_builddir || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make -j1 DESTDIR="$pkgdir" install || return 1
+ rm -f "$pkgdir"/usr/lib/*.la
+}
+
+md5sums="e3cd52a7ab117806f84f33189b67d10f vdr-2.1.6.tar.bz2
+05df0b4253c6e0067ef595f8216031aa musl-compat.patch
+4e51eaaa7d091e1ae940e6d91e889993 Make.config"
+sha256sums="39a66e7c40ef2d7618b5b832cb7f7db99e0497cb0e58e6b825ba5f63360c6c4f vdr-2.1.6.tar.bz2
+e45a56f50aaac978efad1cec2de39f14cabeb0b95b84d7cec5016e18a574cda5 musl-compat.patch
+7bac17fbdb590bc4d751f367f9ad35581c7f2367ae9531ee69b3e378dafbace7 Make.config"
+sha512sums="7896d5d05fbcc1435a86e584cc49e95ff56486462299cb21765ddedcec32b6bbc46aea7080ee5ad714ff82fcbf7ccd1ea5c527b07a9892192ce0d23de10936eb vdr-2.1.6.tar.bz2
+02d4872edc7c934735e44e1af6a4a9fabc2de9d1bef301c1407f7b4533c8e8c5f7fe4fc7319669ba6bf7483daa0c9a4f0489024c15ab7ed2949e04dc11a25da8 musl-compat.patch
+bdf9cfd7dbf30efec5dc0421b15960c779deef0fe4ba975a608d1bec41c79caa9dd3fc8a0c9863df137cacc0222f7a881a7c1870f99528ba46efaed18358103b Make.config"
diff --git a/testing/vdr/Make.config b/testing/vdr/Make.config
new file mode 100644
index 0000000000..e7564e43b1
--- /dev/null
+++ b/testing/vdr/Make.config
@@ -0,0 +1,12 @@
+PREFIX = /usr
+VARDIR = /var
+CONFDIR = /etc/vdr
+BINDIR = $(PREFIX)/bin
+INCDIR = $(PREFIX)/include
+LIBDIR = $(PREFIX)/lib/vdr
+LOCDIR = $(PREFIX)/share/locale
+MANDIR = $(PREFIX)/share/man
+PCDIR = $(PREFIX)/lib/pkgconfig
+RESDIR = $(PREFIX)/share/vdr
+VIDEODIR = $(VARDIR)/lib/vdr/video
+CACHEDIR = $(VARDIR)/cache/vdr
diff --git a/testing/vdr/musl-compat.patch b/testing/vdr/musl-compat.patch
new file mode 100644
index 0000000000..04a1636e36
--- /dev/null
+++ b/testing/vdr/musl-compat.patch
@@ -0,0 +1,182 @@
+diff --git a/Makefile b/Makefile
+index 0d3a8fc..43349ed 100644
+--- a/Makefile
++++ b/Makefile
+@@ -19,7 +19,7 @@ CXXFLAGS ?= -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses
+ CDEFINES = -D_GNU_SOURCE
+ CDEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+
+-LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig)
++LIBS = -ljpeg -lpthread -ldl -lcap -lrt -lintl $(shell pkg-config --libs freetype2 fontconfig)
+ INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig)
+
+ # Directories:
+diff --git a/PLUGINS/src/dvbsddevice/dvbsdffosd.c b/PLUGINS/src/dvbsddevice/dvbsdffosd.c
+index 1a8caf8..b82cc52 100644
+--- a/PLUGINS/src/dvbsddevice/dvbsdffosd.c
++++ b/PLUGINS/src/dvbsddevice/dvbsdffosd.c
+@@ -10,7 +10,7 @@
+ #include <linux/dvb/osd.h>
+ #include <signal.h>
+ #include <sys/ioctl.h>
+-#include <sys/unistd.h>
++#include <unistd.h>
+ #include <vdr/tools.h>
+
+ // --- cDvbSdFfOsd -----------------------------------------------------------
+diff --git a/font.c b/font.c
+index cd2c494..0c052a1 100644
+--- a/font.c
++++ b/font.c
+@@ -433,7 +433,7 @@ bool cFont::GetAvailableFontNames(cStringList *FontNames, bool Monospaced)
+ {
+ if (!FontNames->Size()) {
+ FcInit();
+- FcObjectSet *os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, NULL);
++ FcObjectSet *os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, (char *)NULL);
+ FcPattern *pat = FcPatternCreate();
+ FcPatternAddBool(pat, FC_SCALABLE, FcTrue);
+ if (Monospaced)
+diff --git a/i18n.h b/i18n.h
+index c3f1fc7..0ace2cd 100644
+--- a/i18n.h
++++ b/i18n.h
+@@ -17,6 +17,10 @@
+ #define I18N_MAX_LOCALE_LEN 16 // for buffers that hold en_US etc.
+ #define I18N_MAX_LANGUAGES 256 // for buffers that hold all available languages
+
++#ifndef __attribute_format_arg__
++#define __attribute_format_arg__(x)
++#endif
++
+ void I18nInitialize(const char *LocaleDir = NULL);
+ ///< Detects all available locales and loads the language names and codes.
+ ///< If LocaleDir is given, it must point to a static string that lives
+diff --git a/osd.c b/osd.c
+index 7e52782..c372245 100644
+--- a/osd.c
++++ b/osd.c
+@@ -12,7 +12,7 @@
+ #include <stdlib.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+-#include <sys/unistd.h>
++#include <unistd.h>
+ #include "device.h"
+ #include "tools.h"
+
+diff --git a/thread.c b/thread.c
+index e5e19c9..fab13a2 100644
+--- a/thread.c
++++ b/thread.c
+@@ -143,7 +143,9 @@ cRwLock::cRwLock(bool PreferWriter)
+ {
+ pthread_rwlockattr_t attr;
+ pthread_rwlockattr_init(&attr);
++ #if defined(PTHREAD_RWLOCK_PREFER_WRITER_NP) && defined(PTHREAD_RWLOCK_PREFER_READER_NP)
+ pthread_rwlockattr_setkind_np(&attr, PreferWriter ? PTHREAD_RWLOCK_PREFER_WRITER_NP : PTHREAD_RWLOCK_PREFER_READER_NP);
++ #endif
+ pthread_rwlock_init(&rwlock, &attr);
+ }
+
+@@ -179,7 +181,7 @@ cMutex::cMutex(void)
+ locked = 0;
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_init(&attr);
+- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP);
++ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
+ pthread_mutex_init(&mutex, &attr);
+ }
+
+@@ -507,7 +509,7 @@ bool cPipe::Open(const char *Command, const char *Mode)
+ int MaxPossibleFileDescriptors = getdtablesize();
+ for (int i = STDERR_FILENO + 1; i < MaxPossibleFileDescriptors; i++)
+ close(i); //close all dup'ed filedescriptors
+- if (execl("/bin/sh", "sh", "-c", Command, NULL) == -1) {
++ if (execl("/bin/sh", "sh", "-c", Command, (char *)NULL) == -1) {
+ LOG_ERROR_STR(Command);
+ close(fd[1 - iopipe]);
+ _exit(-1);
+@@ -590,7 +592,7 @@ int SystemExec(const char *Command, bool Detached)
+ int MaxPossibleFileDescriptors = getdtablesize();
+ for (int i = STDERR_FILENO + 1; i < MaxPossibleFileDescriptors; i++)
+ close(i); //close all dup'ed filedescriptors
+- if (execl("/bin/sh", "sh", "-c", Command, NULL) == -1) {
++ if (execl("/bin/sh", "sh", "-c", Command, (char *)NULL) == -1) {
+ LOG_ERROR_STR(Command);
+ _exit(-1);
+ }
+diff --git a/tools.c b/tools.c
+index a2055ec..31fb245 100644
+--- a/tools.c
++++ b/tools.c
+@@ -32,6 +32,11 @@ int SysLogLevel = 3;
+
+ #define MAXSYSLOGBUF 256
+
++#ifndef ACCESSPERMS
++# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++
++
+ void syslog_with_tid(int priority, const char *format, ...)
+ {
+ va_list ap;
+@@ -618,7 +623,7 @@ char *ReadLink(const char *FileName)
+ {
+ if (!FileName)
+ return NULL;
+- char *TargetName = canonicalize_file_name(FileName);
++ char *TargetName = realpath(FileName, NULL);
+ if (!TargetName) {
+ if (errno == ENOENT) // file doesn't exist
+ TargetName = strdup(FileName);
+diff --git a/tools.h b/tools.h
+index 358f75e..2029e31 100644
+--- a/tools.h
++++ b/tools.h
+@@ -24,6 +24,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <syslog.h>
++#include <limits.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+
+@@ -31,6 +32,10 @@ typedef unsigned char uchar;
+
+ extern int SysLogLevel;
+
++#ifndef DEFFILEMODE
++#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) /* 0666 */
++#endif
++
+ #define esyslog(a...) void( (SysLogLevel > 0) ? syslog_with_tid(LOG_ERR, a) : void() )
+ #define isyslog(a...) void( (SysLogLevel > 1) ? syslog_with_tid(LOG_INFO, a) : void() )
+ #define dsyslog(a...) void( (SysLogLevel > 2) ? syslog_with_tid(LOG_DEBUG, a) : void() )
+@@ -567,7 +572,7 @@ public:
+ data[i] = T(0);
+ size = 0;
+ }
+- void Sort(__compar_fn_t Compare)
++ void Sort(int (* Compare)(const void *, const void *))
+ {
+ qsort(data, size, sizeof(T), Compare);
+ }
+diff --git a/vdr.c b/vdr.c
+index 835d33d..977683d 100644
+--- a/vdr.c
++++ b/vdr.c
+@@ -610,9 +610,9 @@ int main(int argc, char *argv[])
+ }
+ else if (Terminal) {
+ // Claim new controlling terminal
+- stdin = freopen(Terminal, "r", stdin);
+- stdout = freopen(Terminal, "w", stdout);
+- stderr = freopen(Terminal, "w", stderr);
++ freopen(Terminal, "r", stdin);
++ freopen(Terminal, "w", stdout);
++ freopen(Terminal, "w", stderr);
+ HasStdin = true;
+ tcgetattr(STDIN_FILENO, &savedTm);
+ }