diff options
author | Taner Tas <taner76@gmail.com> | 2017-07-11 07:00:09 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2017-07-24 10:40:53 +0000 |
commit | 5a98b04cc37938b42fc9de0da61eef3792e8c001 (patch) | |
tree | 242d791ac3c05a956f7a26bc28a3f50390e6113a /testing/vdr/musl-compat.patch | |
parent | 60d203036f77aa3a021d0a66264031059c9a2f55 (diff) | |
download | aports-5a98b04cc37938b42fc9de0da61eef3792e8c001.tar.bz2 aports-5a98b04cc37938b42fc9de0da61eef3792e8c001.tar.xz |
unmaintained/vdr/APKBUILD -> testing/vdr:
Diffstat (limited to 'testing/vdr/musl-compat.patch')
-rw-r--r-- | testing/vdr/musl-compat.patch | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/testing/vdr/musl-compat.patch b/testing/vdr/musl-compat.patch new file mode 100644 index 0000000000..4b5dbbf457 --- /dev/null +++ b/testing/vdr/musl-compat.patch @@ -0,0 +1,133 @@ +diff --git a/i18n.h b/i18n.h +index f8ad9de..b002bbf 100644 +--- a/i18n.h ++++ b/i18n.h +@@ -46,7 +46,7 @@ const cStringList *I18nLanguages(void); + ///< have an actual locale installed. The rest are just dummy entries + ///< to allow having three letter language codes for other languages + ///< that have no actual locale on this system. +-const char *I18nTranslate(const char *s, const char *Plugin = NULL) __attribute_format_arg__(1); ++const char *I18nTranslate(const char *s, const char *Plugin = NULL) __attribute__((__format_arg__ (1))); + ///< Translates the given string (with optional Plugin context) into + ///< the current language. If no translation is available, the original + ///< string will be returned. +diff --git a/osd.c b/osd.c +index 524700a..ef975f5 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 47eb977..58dba43 100644 +--- a/thread.c ++++ b/thread.c +@@ -155,7 +155,9 @@ cRwLock::cRwLock(bool PreferWriter) + writeLockThreadId = 0; + pthread_rwlockattr_t attr; + pthread_rwlockattr_init(&attr); ++#if defined(__GLIBC__) + pthread_rwlockattr_setkind_np(&attr, PreferWriter ? PTHREAD_RWLOCK_PREFER_WRITER_NP : PTHREAD_RWLOCK_PREFER_READER_NP); ++#endif + pthread_rwlock_init(&rwlock, &attr); + } + +@@ -205,7 +207,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); + } + +diff --git a/tools.c b/tools.c +index 754673d..fef9d2d 100644 +--- a/tools.c ++++ b/tools.c +@@ -640,7 +640,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); +@@ -1528,7 +1528,7 @@ + struct dirent *cReadDir::Next(void) + { + if (directory) { +-#if !__GLIBC_PREREQ(2, 24) // readdir_r() is deprecated as of GLIBC 2.24 ++#if __GLIBC__ + while (readdir_r(directory, &u.d, &result) == 0 && result) { + #else + while ((result = readdir(directory)) != NULL) { +diff --git a/tools.h b/tools.h +index 73cca5a..03f5fd1 100644 +--- a/tools.h ++++ b/tools.h +@@ -28,6 +28,16 @@ + #include <sys/types.h> + #include "thread.h" + ++#ifndef ACCESSPERMS ++# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ ++#endif ++#ifndef ALLPERMS ++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)/* 07777 */ ++#endif ++#ifndef DEFFILEMODE ++# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/ ++#endif ++ + typedef unsigned char uchar; + + extern int SysLogLevel; +@@ -400,7 +410,7 @@ + private: + DIR *directory; + struct dirent *result; +-#if !__GLIBC_PREREQ(2, 24) // readdir_r() is deprecated as of GLIBC 2.24 ++#if __GLIBC__ + union { // according to "The GNU C Library Reference Manual" + struct dirent d; + char b[offsetof(struct dirent, d_name) + NAME_MAX + 1]; +@@ -738,7 +748,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 8a49471..c2a82aa 100644 +--- a/vdr.c ++++ b/vdr.c +@@ -670,12 +670,18 @@ int main(int argc, char *argv[]) + } + } + else if (Terminal) { ++#ifdef __GLIBC__ + // Claim new controlling terminal + stdin = freopen(Terminal, "r", stdin); + stdout = freopen(Terminal, "w", stdout); + stderr = freopen(Terminal, "w", stderr); + HasStdin = true; + tcgetattr(STDIN_FILENO, &savedTm); ++#else ++ // stdin, stdout, stderr are declared FILE const* by musl C library ++ fprintf(stderr, "Option '-t' is only supported if VDR has been built against glibc.\n"); ++ return 2; ++#endif + } + + isyslog("VDR version %s started", VDRVERSION); |