aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr/files/patch-vdr-1.7.28_FreeBSD
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/vdr/files/patch-vdr-1.7.28_FreeBSD')
-rw-r--r--multimedia/vdr/files/patch-vdr-1.7.28_FreeBSD1222
1 files changed, 0 insertions, 1222 deletions
diff --git a/multimedia/vdr/files/patch-vdr-1.7.28_FreeBSD b/multimedia/vdr/files/patch-vdr-1.7.28_FreeBSD
deleted file mode 100644
index 583db5ab79e4..000000000000
--- a/multimedia/vdr/files/patch-vdr-1.7.28_FreeBSD
+++ /dev/null
@@ -1,1222 +0,0 @@
-Index: Make.config.template
-@@ -8,6 +8,11 @@
- #
- # $Id: Make.config.template 2.8 2012/03/20 11:20:13 kls Exp $
-
-+OSTYPE ?= $(shell uname -s)
-+ifeq ($(OSTYPE),FreeBSD)
-+FREEBSD=1
-+endif
-+
- ### The C compiler and options:
-
- CC = gcc
-@@ -28,11 +33,22 @@ PREFIX = $(DESTDIR)/usr/local
- MANDIR = $(PREFIX)/man
- BINDIR = $(PREFIX)/bin
-
-+ifdef FREEBSD
-+# you have to set DVBDIR to a valid path!!!
-+# you will need extra patches for DVBDIR!!!
-+#DVBDIR = /usr/local/include
-+LOCDIR = $(PREFIX)/share/locale
-+PLUGINDIR = ./PLUGINS
-+PLUGINLIBDIR = $(PREFIX)/lib/vdr
-+VIDEODIR = /video
-+CONFDIR = $(PREFIX)/etc/vdr
-+else
- LOCDIR = ./locale
- PLUGINDIR = ./PLUGINS
- PLUGINLIBDIR = $(PLUGINDIR)/lib
- VIDEODIR = /video
- CONFDIR = $(VIDEODIR)
-+endif
-
- ### The remote control:
-
-@@ -46,3 +62,7 @@ LIRC_DEVICE = /var/run/lirc/lircd
- ifdef DVBDIR
- INCLUDES += -I$(DVBDIR)/include
- endif
-+
-+ifdef FREEBSD
-+INCLUDES += -I$(VDRDIR)/include -I/usr/local/include
-+endif
-Index: Makefile
-@@ -8,6 +8,11 @@
-
- .DELETE_ON_ERROR:
-
-+OSTYPE ?= $(shell uname -s)
-+ifeq ($(OSTYPE),FreeBSD)
-+FREEBSD=1
-+endif
-+
- CC ?= gcc
- CFLAGS ?= -g -O3 -Wall
-
-@@ -21,7 +26,11 @@ MANDIR ?= $(PREFIX)/share/man
- BINDIR ?= $(PREFIX)/bin
- INCDIR ?= $(PREFIX)/include
- LOCDIR ?= ./locale
-+ifdef FREEBSD
-+LIBS = -ljpeg -lpthread -lrt -lutil -lintl -liconv $(shell pkg-config --libs freetype2 fontconfig)
-+else
- LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig)
-+endif
- INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig)
-
- PLUGINDIR= ./PLUGINS
-@@ -150,7 +159,11 @@ i18n: $(I18Nmsgs)
-
- install-i18n:
- @mkdir -p $(DESTDIR)$(LOCDIR)
-+ifdef FREEBSD
-+ @(cd $(LOCALEDIR); cp -R * $(DESTDIR)$(LOCDIR))
-+else
- @(cd $(LOCALEDIR); cp -r --parents * $(DESTDIR)$(LOCDIR))
-+endif
-
- # The 'include' directory (for plugins):
-
-@@ -189,7 +202,11 @@ install: install-bin install-conf instal
-
- install-bin: vdr
- @mkdir -p $(DESTDIR)$(BINDIR)
-+ifdef FREEBSD
-+ @cp -f vdr svdrpsend $(DESTDIR)$(BINDIR)
-+else
- @cp --remove-destination vdr svdrpsend $(DESTDIR)$(BINDIR)
-+endif
-
- # Configuration files:
-
-@@ -212,13 +229,18 @@ install-doc:
-
- install-plugins: plugins
- @mkdir -p $(DESTDIR)$(PLUGINLIBDIR)
-+ifdef FREEBSD
-+ @cp -f $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(PLUGINLIBDIR)
-+else
- @cp --remove-destination $(PLUGINDIR)/lib/lib*-*.so.$(APIVERSION) $(DESTDIR)$(PLUGINLIBDIR)
-+endif
-
- # Includes:
-
- install-includes: include-dir
- @mkdir -p $(DESTDIR)$(INCDIR)
- @cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
-+ @cp Make.config Make.global $(DESTDIR)$(INCDIR)/vdr
-
- # pkg-config file:
-
-Index: channels.c
-@@ -29,7 +29,12 @@ tChannelID tChannelID::FromString(const
- int tid;
- int sid;
- int rid = 0;
-+#ifdef __FreeBSD__
-+ sourcebuf = MALLOC(char, 10);
-+ int fields = sscanf(s, "%9[^-]-%d-%d-%d-%d", sourcebuf, &nid, &tid, &sid, &rid);
-+#else
- int fields = sscanf(s, "%a[^-]-%d-%d-%d-%d", &sourcebuf, &nid, &tid, &sid, &rid);
-+#endif
- if (fields == 4 || fields == 5) {
- int source = cSource::FromString(sourcebuf);
- free(sourcebuf);
-@@ -554,7 +559,18 @@ bool cChannel::Parse(const char *s)
- char *apidbuf = NULL;
- char *tpidbuf = NULL;
- char *caidbuf = NULL;
-+#ifdef __FreeBSD__
-+ namebuf = MALLOC(char, 256);
-+ sourcebuf = MALLOC(char, 10);
-+ parambuf = MALLOC(char, 256);
-+ vpidbuf = MALLOC(char, 256);
-+ apidbuf = MALLOC(char, 256);
-+ tpidbuf = MALLOC(char, 256);
-+ caidbuf = MALLOC(char, 256);
-+ int fields = sscanf(s, "%255[^:]:%d :%255[^:]:%255[^:] :%d :%255[^:]:%255[^:]:%255[^:]:%255[^:]:%d :%d :%d :%d ", namebuf, &frequency, parambuf, sourcebuf, &srate, vpidbuf, apidbuf, tpidbuf, caidbuf, &sid, &nid, &tid, &rid);
-+#else
- int fields = sscanf(s, "%a[^:]:%d :%a[^:]:%a[^:] :%d :%a[^:]:%a[^:]:%a[^:]:%a[^:]:%d :%d :%d :%d ", &namebuf, &frequency, &parambuf, &sourcebuf, &srate, &vpidbuf, &apidbuf, &tpidbuf, &caidbuf, &sid, &nid, &tid, &rid);
-+#endif
- if (fields >= 9) {
- if (fields == 9) {
- // allow reading of old format
-Index: ci.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/ci.c,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- ci.c 2010/02/17 10:14:44 1.1.1.2
-+++ ci.c 2010/02/17 10:46:55 1.3
-@@ -10,7 +10,11 @@
- #include "ci.h"
- #include <ctype.h>
- #include <linux/dvb/ca.h>
-+#ifdef __FreeBSD__
-+#include <stdlib.h>
-+#else
- #include <malloc.h>
-+#endif
- #include <netinet/in.h>
- #include <poll.h>
- #include <string.h>
-Index: config.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/config.c,v
-retrieving revision 1.1.1.4
-retrieving revision 1.4
-diff -u -r1.1.1.4 -r1.4
---- config.c 2010/06/07 09:07:28 1.1.1.4
-+++ config.c 2010/06/07 09:12:57 1.4
-@@ -10,6 +10,9 @@
- #include "config.h"
- #include <ctype.h>
- #include <stdlib.h>
-+#ifdef __FreeBSD__
-+#include <netinet/in.h>
-+#endif
- #include "device.h"
- #include "i18n.h"
- #include "interface.h"
-Index: diseqc.c
-@@ -114,7 +114,14 @@ bool cDiseqc::Parse(const char *s)
- return true;
- bool result = false;
- char *sourcebuf = NULL;
-+#ifdef __FreeBSD__
-+ sourcebuf = MALLOC(char, 10);
-+ if (commands == NULL)
-+ commands = MALLOC(char, 256);
-+ int fields = sscanf(s, "%9[^ ] %d %c %d %255[^\n]", sourcebuf, &slof, &polarization, &lof, commands);
-+#else
- int fields = sscanf(s, "%a[^ ] %d %c %d %a[^\n]", &sourcebuf, &slof, &polarization, &lof, &commands);
-+#endif
- if (fields == 4)
- commands = NULL; //XXX Apparently sscanf() doesn't work correctly if the last %a argument results in an empty string
- if (4 <= fields && fields <= 5) {
-Index: eit.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/eit.c,v
-retrieving revision 1.1.1.3
-retrieving revision 1.5
-diff -u -r1.1.1.3 -r1.5
---- eit.c 2010/06/07 09:07:27 1.1.1.3
-+++ eit.c 2010/06/07 09:12:57 1.5
-@@ -339,10 +339,15 @@
- if (diff > 2) {
- mutex.Lock();
- if (abs(diff - lastDiff) < 3) {
-+#ifdef __FreeBSD__
-+ isyslog("system time would have changed from %s (%ld) to %s (%ld)", *TimeToString(loctim), loctim, *TimeToString(sattim), sattim);
-+ esyslog("stime() not available on FreeBSD, maybe use adjtime()?");
-+#else
- if (stime(&sattim) == 0)
- isyslog("system time changed from %s (%ld) to %s (%ld)", *TimeToString(loctim), loctim, *TimeToString(sattim), sattim);
- else
- esyslog("ERROR while setting system time: %m");
-+#endif
- }
- lastDiff = diff;
- mutex.Unlock();
-Index: epg.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/epg.c,v
-retrieving revision 1.1.1.3
-retrieving revision 1.5
-diff -u -r1.1.1.3 -r1.5
---- epg.c 2010/03/01 09:42:48 1.1.1.3
-+++ epg.c 2010/03/01 09:58:06 1.5
-@@ -31,7 +31,13 @@
- bool tComponent::FromString(const char *s)
- {
- unsigned int Stream, Type;
-+#ifdef __FreeBSD__
-+ if (description == NULL)
-+ description = MALLOC(char, 256);
-+ int n = sscanf(s, "%X %02X %7s %255[^\n]", &Stream, &Type, language, description); // 7 = MAXLANGCODE2 - 1
-+#else
- int n = sscanf(s, "%X %02X %7s %a[^\n]", &Stream, &Type, language, &description); // 7 = MAXLANGCODE2 - 1
-+#endif
- if (n != 4 || isempty(description)) {
- free(description);
- description = NULL;
-Index: font.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/font.c,v
-retrieving revision 1.1.1.3
-retrieving revision 1.5
-diff -u -r1.1.1.3 -r1.5
---- font.c 2010/10/19 20:28:48 1.1.1.3
-+++ font.c 2010/10/19 20:32:58 1.5
-@@ -383,7 +383,11 @@
- {
- if (!FontNames->Size()) {
- FcInit();
-+#ifdef __FreeBSD__
-+ FcObjectSet *os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, (char *)NULL);
-+#else
- FcObjectSet *os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, NULL);
-+#endif
- FcPattern *pat = FcPatternCreate();
- FcPatternAddBool(pat, FC_SCALABLE, FcTrue);
- if (Monospaced)
-Index: i18n.h
-===================================================================
-RCS file: /progs/network/ccvs/vdr/i18n.h,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- i18n.h 2010/02/17 10:14:45 1.1.1.2
-+++ i18n.h 2010/02/17 10:46:55 1.3
-@@ -48,7 +48,11 @@
- ///< 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.
-+#ifdef __FreeBSD__
-+const char *I18nTranslate(const char *s, const char *Plugin = NULL) __format_arg(1);
-+#else
- const char *I18nTranslate(const char *s, const char *Plugin = NULL) __attribute_format_arg__(1);
-+#endif
- ///< Translates the given string (with optional Plugin context) into
- ///< the current language. If no translation is available, the original
- ///< string will be returned.
-Index: menu.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/menu.c,v
-retrieving revision 1.1.1.6
-retrieving revision 1.7
-diff -u -r1.1.1.6 -r1.7
-Index: menuitems.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/menuitems.c,v
-retrieving revision 1.1.1.4
-retrieving revision 1.5
-diff -u -r1.1.1.4 -r1.5
---- menuitems.c 2010/06/07 09:07:27 1.1.1.4
-+++ menuitems.c 2010/06/07 09:12:57 1.5
-@@ -838,7 +838,11 @@
- struct tm tm_r;
- localtime_r(value, &tm_r);
- strftime(buf, DATEBUFFERSIZE, "%Y-%m-%d ", &tm_r);
-+#ifdef __FreeBSD__
-+ strcat(buf, WeekDayNameReal(tm_r.tm_wday));
-+#else
- strcat(buf, WeekDayName(tm_r.tm_wday));
-+#endif
- }
- else
- *buf = 0;
-Index: pat.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/pat.c,v
-retrieving revision 1.1.1.5
-retrieving revision 1.6
-diff -u -r1.1.1.5 -r1.6
---- pat.c 2010/10/19 20:28:48 1.1.1.5
-+++ pat.c 2010/10/19 20:32:58 1.6
-@@ -8,7 +8,11 @@
- */
-
- #include "pat.h"
-+#ifdef __FreeBSD__
-+#include <stdlib.h>
-+#else
- #include <malloc.h>
-+#endif
- #include "channels.h"
- #include "libsi/section.h"
- #include "libsi/descriptor.h"
-Index: recording.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/recording.c,v
-retrieving revision 1.1.1.3
-retrieving revision 1.5
-diff -u -r1.1.1.3 -r1.5
---- recording.c 2010/03/16 15:18:58 1.1.1.3
-+++ recording.c 2010/03/16 15:21:05 1.5
-@@ -1825,7 +1829,11 @@
- // Search for a PAT packet from the end of the file:
- cPatPmtParser PatPmtParser;
- sprintf(pFileNumber, RECORDFILESUFFIXTS, Number);
-+#ifdef __FreeBSD__
-+ int fd = open(fileName, O_RDONLY, DEFFILEMODE);
-+#else
- int fd = open(fileName, O_RDONLY | O_LARGEFILE, DEFFILEMODE);
-+#endif
- if (fd >= 0) {
- off_t pos = lseek(fd, -TS_SIZE, SEEK_END);
- while (pos >= 0) {
-@@ -1866,14 +1874,22 @@
- int BlockingFlag = blocking ? 0 : O_NONBLOCK;
- if (record) {
- dsyslog("recording to '%s'", fileName);
-+#ifdef __FreeBSD__
-+ file = OpenVideoFile(fileName, O_RDWR | O_CREAT | BlockingFlag);
-+#else
- file = OpenVideoFile(fileName, O_RDWR | O_CREAT | O_LARGEFILE | BlockingFlag);
-+#endif
- if (!file)
- LOG_ERROR_STR(fileName);
- }
- else {
- if (access(fileName, R_OK) == 0) {
- dsyslog("playing '%s'", fileName);
-+#ifdef __FreeBSD__
-+ file = cUnbufferedFile::Create(fileName, O_RDONLY | BlockingFlag);
-+#else
- file = cUnbufferedFile::Create(fileName, O_RDONLY | O_LARGEFILE | BlockingFlag);
-+#endif
- if (!file)
- LOG_ERROR_STR(fileName);
- }
-Index: skins.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/skins.c,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- skins.c 2010/02/17 10:14:45 1.1.1.2
-+++ skins.c 2010/02/17 10:46:55 1.3
-@@ -11,6 +11,20 @@
- #include "interface.h"
- #include "status.h"
-
-+#if defined(__FreeBSD__) && __FreeBSD_version < 1000029
-+/* XXX Implement strchrnul for FreeBSD. */
-+static char *
-+strchrnul (const char *s, int c_in)
-+{
-+ char c = c_in;
-+ while (*s && (*s != c))
-+ s++;
-+
-+ return (char *) s;
-+}
-+#endif
-+
-+
- // --- cSkinQueuedMessage ----------------------------------------------------
-
- class cSkinQueuedMessage : public cListObject {
-Index: sources.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/sources.c,v
-retrieving revision 1.1.1.4
-retrieving revision 1.5
-diff -u -r1.1.1.4 -r1.5
---- sources.c 2010/03/16 15:18:58 1.1.1.4
-+++ sources.c 2010/03/16 15:21:05 1.5
-@@ -31,7 +31,14 @@
- bool cSource::Parse(const char *s)
- {
- char *codeBuf = NULL;
-+#ifdef __FreeBSD__
-+ codeBuf = MALLOC(char, 10);
-+ if (description == NULL)
-+ description = MALLOC(char, 256);
-+ if (2 == sscanf(s, "%9[^ ] %255[^\n]", codeBuf, description))
-+#else
- if (2 == sscanf(s, "%a[^ ] %a[^\n]", &codeBuf, &description))
-+#endif
- code = FromString(codeBuf);
- free(codeBuf);
- return code != stNone && description && *description;
-Index: svdrp.c
-@@ -40,6 +40,12 @@
- #include "tools.h"
- #include "videodir.h"
-
-+/* FreeBSD has it's own version of isnumber(),
-+ but VDR's version is incompatible */
-+#ifdef __FreeBSD__
-+#undef isnumber
-+#endif
-+
- // --- cSocket ---------------------------------------------------------------
-
- cSocket::cSocket(int Port, int Queue)
-@@ -124,6 +130,23 @@ int cSocket::Accept(void)
- }
- else if (errno != EINTR && errno != EAGAIN)
- LOG_ERROR;
-+#ifdef __FreeBSD__
-+ // Linux' accept() doesn't inherit O_NONBLOCK... (this fixes
-+ // cSVDRP::Send() failing due to EAGAIN when vdradmin-am downloads EPG.)
-+ if (newsock >= 0) {
-+ // make it blocking:
-+ int oldflags = fcntl(newsock, F_GETFL, 0);
-+ if (oldflags < 0) {
-+ LOG_ERROR;
-+ return -1;
-+ }
-+ oldflags &= ~O_NONBLOCK;
-+ if (fcntl(newsock, F_SETFL, oldflags) < 0) {
-+ LOG_ERROR;
-+ return -1;
-+ }
-+ }
-+#endif
- return newsock;
- }
- return -1;
-Index: themes.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/themes.c,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- themes.c 2010/02/17 10:14:44 1.1.1.2
-+++ themes.c 2010/02/17 10:46:55 1.3
-@@ -47,7 +47,11 @@
- // FileName is ok
- if (SetName) {
- free(name);
-+#ifdef __FreeBSD__
-+ name = (char *)strndup(n, e - n);
-+#else
- name = strndup(n, e - n);
-+#endif
- }
- }
- else
-Index: thread.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/thread.c,v
-retrieving revision 1.1.1.2
-retrieving revision 1.6
-diff -u -r1.1.1.2 -r1.6
---- thread.c 2010/02/17 10:14:45 1.1.1.2
-+++ thread.c 2010/02/24 08:41:13 1.6
-@@ -9,15 +9,22 @@
-
- #include "thread.h"
- #include <errno.h>
-+#ifdef __FreeBSD__
-+#include <pthread_np.h>
-+#include <stdlib.h>
-+#else
- #include <linux/unistd.h>
- #include <malloc.h>
-+#endif
- #include <stdarg.h>
- #include <stdlib.h>
- #include <sys/resource.h>
- #include <sys/syscall.h>
- #include <sys/time.h>
- #include <sys/wait.h>
-+#ifndef __FreeBSD__
- #include <sys/prctl.h>
-+#endif
- #include <unistd.h>
- #include "tools.h"
-
-@@ -143,7 +150,9 @@
- {
- pthread_rwlockattr_t attr;
- pthread_rwlockattr_init(&attr);
-+#ifndef __FreeBSD__
- pthread_rwlockattr_setkind_np(&attr, PreferWriter ? PTHREAD_RWLOCK_PREFER_WRITER_NP : PTHREAD_RWLOCK_PREFER_READER_NP);
-+#endif
- pthread_rwlock_init(&rwlock, &attr);
- }
-
-@@ -179,7 +188,11 @@
- locked = 0;
- pthread_mutexattr_t attr;
- pthread_mutexattr_init(&attr);
-+#ifdef __FreeBSD__
-+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
-+#else
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP);
-+#endif
- pthread_mutex_init(&mutex, &attr);
- }
-
-@@ -228,8 +241,12 @@
-
- void cThread::SetIOPriority(int Priority)
- {
-+#ifdef __FreeBSD__
-+ esyslog("ERROR: syscall(SYS_ioprio_set ...) unsupported on FreeBSD");
-+#else
- if (syscall(SYS_ioprio_set, 1, 0, (Priority & 0xff) | (2 << 13)) < 0) // best effort class
- LOG_ERROR;
-+#endif
- }
-
- void cThread::SetDescription(const char *Description, ...)
-@@ -335,7 +352,11 @@
-
- tThreadId cThread::ThreadId(void)
- {
-+#ifdef __FreeBSD__
-+ return reinterpret_cast<long>(::pthread_self());
-+#else
- return syscall(__NR_gettid);
-+#endif
- }
-
- void cThread::SetMainThreadId(void)
-@@ -461,7 +482,11 @@
- int MaxPossibleFileDescriptors = getdtablesize();
- for (int i = STDERR_FILENO + 1; i < MaxPossibleFileDescriptors; i++)
- close(i); //close all dup'ed filedescriptors
-+#ifdef __FreeBSD__
-+ if (execl("/bin/sh", "sh", "-c", Command, (char *)NULL) == -1) {
-+#else
- if (execl("/bin/sh", "sh", "-c", Command, NULL) == -1) {
-+#endif
- LOG_ERROR_STR(Command);
- close(fd[1 - iopipe]);
- _exit(-1);
-@@ -544,7 +569,11 @@
- int MaxPossibleFileDescriptors = getdtablesize();
- for (int i = STDERR_FILENO + 1; i < MaxPossibleFileDescriptors; i++)
- close(i); //close all dup'ed filedescriptors
-+#ifdef __FreeBSD__
-+ if (execl("/bin/sh", "sh", "-c", Command, (char *)NULL) == -1) {
-+#else
- if (execl("/bin/sh", "sh", "-c", Command, NULL) == -1) {
-+#endif
- LOG_ERROR_STR(Command);
- _exit(-1);
- }
-Index: thread.h
-===================================================================
-RCS file: /progs/network/ccvs/vdr/thread.h,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- thread.h 2010/02/17 10:14:44 1.1.1.2
-+++ thread.h 2010/02/17 10:46:55 1.3
-@@ -13,6 +13,9 @@
- #include <pthread.h>
- #include <stdio.h>
- #include <sys/types.h>
-+#ifdef __FreeBSD__
-+#include <signal.h>
-+#endif
-
- class cCondWait {
- private:
-Index: timers.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/timers.c,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- timers.c 2010/02/17 10:14:45 1.1.1.2
-+++ timers.c 2010/02/17 10:46:55 1.3
-@@ -23,6 +23,12 @@
- // format characters in order to allow any number of blanks after a numeric
- // value!
-
-+/* FreeBSD has it's own version of isnumber(),
-+ but VDR's version is incompatible */
-+#ifdef __FreeBSD__
-+#undef isnumber
-+#endif
-+
- // --- cTimer ----------------------------------------------------------------
-
- cTimer::cTimer(bool Instant, bool Pause, cChannel *Channel)
-@@ -292,7 +298,15 @@
- s = s2;
- }
- bool result = false;
-+#ifdef __FreeBSD__
-+ channelbuffer = MALLOC(char, 256);
-+ daybuffer = MALLOC(char, 256);
-+ filebuffer = MALLOC(char, 256);
-+ aux = MALLOC(char, 256);
-+ if (8 <= sscanf(s, "%u :%255[^:]:%255[^:]:%d :%d :%d :%d :%255[^:\n]:%255[^\n]", &flags, channelbuffer, daybuffer, &start, &stop, &priority, &lifetime, filebuffer, aux)) {
-+#else
- if (8 <= sscanf(s, "%u :%a[^:]:%a[^:]:%d :%d :%d :%d :%a[^:\n]:%a[^\n]", &flags, &channelbuffer, &daybuffer, &start, &stop, &priority, &lifetime, &filebuffer, &aux)) {
-+#endif
- ClrFlags(tfRecording);
- if (aux && !*skipspace(aux)) {
- free(aux);
-Index: tools.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/tools.c,v
-retrieving revision 1.1.1.5
-retrieving revision 1.8
-diff -u -r1.1.1.5 -r1.8
---- tools.c 2010/10/19 20:28:48 1.1.1.5
-+++ tools.c 2010/10/19 20:32:58 1.8
-@@ -21,13 +21,24 @@
- #include <stdarg.h>
- #include <stdlib.h>
- #include <sys/time.h>
-+#ifdef __FreeBSD__
-+#include <sys/param.h>
-+#include <sys/mount.h>
-+#else
- #include <sys/vfs.h>
-+#endif
- #include <time.h>
- #include <unistd.h>
- #include <utime.h>
- #include "i18n.h"
- #include "thread.h"
-
-+/* FreeBSD has it's own version of isnumber(),
-+ but VDR's version is incompatible */
-+#ifdef __FreeBSD__
-+#undef isnumber
-+#endif
-+
- int SysLogLevel = 3;
-
- #define MAXSYSLOGBUF 256
-@@ -493,6 +504,18 @@
- {
- if (!FileName)
- return NULL;
-+#ifdef __FreeBSD__
-+ char *resolved_path = NULL;
-+ resolved_path = MALLOC(char, PATH_MAX+1);
-+ if (realpath(FileName, resolved_path) == NULL)
-+ {
-+ if (errno != ENOENT) // some other error occurred
-+ LOG_ERROR_STR(FileName);
-+ else // file doesn't exist
-+ resolved_path = strdup(FileName);
-+ }
-+ return resolved_path;
-+#else
- char *TargetName = canonicalize_file_name(FileName);
- if (!TargetName) {
- if (errno == ENOENT) // file doesn't exist
-@@ -501,6 +524,7 @@
- LOG_ERROR_STR(FileName);
- }
- return TargetName;
-+#endif
- }
-
- bool SpinUpDisk(const char *FileName)
-@@ -517,7 +541,11 @@
- int f = open(buf, O_WRONLY | O_CREAT, DEFFILEMODE);
- // O_SYNC doesn't work on all file systems
- if (f >= 0) {
-+#ifdef __FreeBSD__
-+ if (fsync(f) < 0)
-+#else
- if (fdatasync(f) < 0)
-+#endif
- LOG_ERROR_STR(*buf);
- close(f);
- remove(buf);
-@@ -920,7 +952,11 @@
- return cString(buffer, true);
- }
-
-+#ifdef __FreeBSD__
-+cString WeekDayNameReal(int WeekDay)
-+#else
- cString WeekDayName(int WeekDay)
-+#endif
- {
- char buffer[16];
- WeekDay = WeekDay == 0 ? 6 : WeekDay - 1; // we start with Monday==0!
-@@ -938,10 +974,18 @@
- cString WeekDayName(time_t t)
- {
- struct tm tm_r;
-+#ifdef __FreeBSD__
-+ return WeekDayNameReal(localtime_r(&t, &tm_r)->tm_wday);
-+#else
- return WeekDayName(localtime_r(&t, &tm_r)->tm_wday);
-+#endif
- }
-
-+#ifdef __FreeBSD__
-+cString WeekDayNameFullReal(int WeekDay)
-+#else
- cString WeekDayNameFull(int WeekDay)
-+#endif
- {
- WeekDay = WeekDay == 0 ? 6 : WeekDay - 1; // we start with Monday==0!
- switch (WeekDay) {
-@@ -959,7 +1003,11 @@
- cString WeekDayNameFull(time_t t)
- {
- struct tm tm_r;
-+#ifdef __FreeBSD__
-+ return WeekDayNameFullReal(localtime_r(&t, &tm_r)->tm_wday);
-+#else
- return WeekDayNameFull(localtime_r(&t, &tm_r)->tm_wday);
-+#endif
- }
-
- cString DayDateTime(time_t t)
-@@ -969,7 +1017,11 @@
- time(&t);
- struct tm tm_r;
- tm *tm = localtime_r(&t, &tm_r);
-+#ifdef __FreeBSD__
-+ snprintf(buffer, sizeof(buffer), "%s %02d.%02d. %02d:%02d", *WeekDayNameReal(tm->tm_wday), tm->tm_mday, tm->tm_mon + 1, tm->tm_hour, tm->tm_min);
-+#else
- snprintf(buffer, sizeof(buffer), "%s %02d.%02d. %02d:%02d", *WeekDayName(tm->tm_wday), tm->tm_mday, tm->tm_mon + 1, tm->tm_hour, tm->tm_min);
-+#endif
- return buffer;
- }
-
-@@ -988,7 +1040,11 @@
- char buf[32];
- struct tm tm_r;
- tm *tm = localtime_r(&t, &tm_r);
-+#ifdef __FreeBSD__
-+ char *p = stpcpy(buf, WeekDayNameReal(tm->tm_wday));
-+#else
- char *p = stpcpy(buf, WeekDayName(tm->tm_wday));
-+#endif
- *p++ = ' ';
- strftime(p, sizeof(buf) - (p - buf), "%d.%m.%Y", tm);
- return buf;
-@@ -1315,7 +1371,11 @@
- if (!IsOpen()) {
- f = FileDes;
- if (f >= 0) {
-+#ifdef __FreeBSD__
-+ if ((uint)f < FD_SETSIZE) {
-+#else
- if (f < FD_SETSIZE) {
-+#endif
- if (f >= maxFiles)
- maxFiles = f + 1;
- if (!files[f])
-@@ -1356,7 +1416,11 @@
- if (files[i])
- FD_SET(i, &set);
- }
-+#ifdef __FreeBSD__
-+ if (0 <= FileDes && (uint)FileDes < FD_SETSIZE && !files[FileDes])
-+#else
- if (0 <= FileDes && FileDes < FD_SETSIZE && !files[FileDes])
-+#endif
- FD_SET(FileDes, &set); // in case we come in with an arbitrary descriptor
- if (TimeoutMs == 0)
- TimeoutMs = 10; // load gets too heavy with 0
-@@ -1451,7 +1515,9 @@
-
- // --- cUnbufferedFile -------------------------------------------------------
-
-+#ifndef __FreeBSD__
- #define USE_FADVISE
-+#endif
-
- #define WRITE_BUFFER KILOBYTE(800)
-
-@@ -1512,11 +1578,13 @@
- readahead = ra;
- }
-
-+#ifdef USE_FADVISE
- int cUnbufferedFile::FadviseDrop(off_t Offset, off_t Len)
- {
- // rounding up the window to make sure that not PAGE_SIZE-aligned data gets freed.
- return posix_fadvise(fd, Offset - (FADVGRAN - 1), Len + (FADVGRAN - 1) * 2, POSIX_FADV_DONTNEED);
- }
-+#endif
-
- off_t cUnbufferedFile::Seek(off_t Offset, int Whence)
- {
-Index: tools.h
-@@ -27,6 +27,12 @@
- #include <sys/stat.h>
- #include <sys/types.h>
-
-+#ifdef __FreeBSD__
-+#include <sys/param.h>
-+typedef int (*__compar_fn_t) (__const void *, __const void *);
-+#undef isnumber
-+#endif
-+
- typedef unsigned char uchar;
-
- extern int SysLogLevel;
-@@ -227,12 +233,20 @@ bool SpinUpDisk(const char *FileName);
- void TouchFile(const char *FileName);
- time_t LastModifiedTime(const char *FileName);
- off_t FileSize(const char *FileName); ///< returns the size of the given file, or -1 in case of an error (e.g. if the file doesn't exist)
-+#ifdef __FreeBSD__
-+cString WeekDayNameReal(int WeekDay);
-+#else
- cString WeekDayName(int WeekDay);
-+#endif
- ///< Converts the given WeekDay (0=Sunday, 1=Monday, ...) to a three letter
- ///< day name.
- cString WeekDayName(time_t t);
- ///< Converts the week day of the given time to a three letter day name.
-+#ifdef __FreeBSD__
-+cString WeekDayNameFullReal(int WeekDay);
-+#else
- cString WeekDayNameFull(int WeekDay);
-+#endif
- ///< Converts the given WeekDay (0=Sunday, 1=Monday, ...) to a full
- ///< day name.
- cString WeekDayNameFull(time_t t);
-Index: vdr.c
---- vdr.c
-+++ vdr.c
-@@ -32,8 +32,13 @@
- #include <pwd.h>
- #include <signal.h>
- #include <stdlib.h>
-+#ifndef __FreeBSD__
- #include <sys/capability.h>
- #include <sys/prctl.h>
-+#else
-+#include <sys/types.h>
-+#include <login_cap.h>
-+#endif
- #include <termios.h>
- #include <unistd.h>
- #include "audio.h"
-@@ -107,12 +112,15 @@ static bool SetUser(const char *UserName
- fprintf(stderr, "vdr: cannot set user id %u: %s\n", (unsigned int)user->pw_uid, strerror(errno));
- return false;
- }
-+#ifndef __FreeBSD__
- if (UserDump && prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) < 0)
- fprintf(stderr, "vdr: warning - cannot set dumpable: %s\n", strerror(errno));
-+#endif
- }
- return true;
- }
-
-+#ifndef __FreeBSD__
- static bool DropCaps(void)
- {
- // drop all capabilities except selected ones
-@@ -139,6 +147,7 @@ static bool SetKeepCaps(bool On)
- }
- return true;
- }
-+#endif
-
- static void SignalHandler(int signum)
- {
-@@ -400,14 +409,18 @@ int main(int argc, char *argv[])
- if (VdrUser && geteuid() == 0) {
- StartedAsRoot = true;
- if (strcmp(VdrUser, "root")) {
-+#ifndef __FreeBSD__
- if (!SetKeepCaps(true))
- return 2;
-+#endif
- if (!SetUser(VdrUser, UserDump))
- return 2;
-+#ifndef __FreeBSD__
- if (!SetKeepCaps(false))
- return 2;
- if (!DropCaps())
- return 2;
-+#endif
- }
- }
-
-@@ -556,6 +569,25 @@ int main(int argc, char *argv[])
- CodeSet++; // skip the dot
- }
- }
-+#ifdef __FreeBSD__
-+ // If we are started without a locale query login.conf(5) for
-+ // a lang setting
-+
-+ if (!CodeSet || !strcmp(CodeSet, "US-ASCII")) {
-+ struct passwd *User = getpwnam(VdrUser);
-+ login_cap_t *Lc = login_getuserclass(User);
-+ if (!Lc)
-+ Lc = login_getpwclass(User);
-+ if (Lc) {
-+ const char *Lang = login_getcapstr(Lc, "lang", NULL, NULL);
-+ if (Lang && setlocale(LC_CTYPE, Lang)) {
-+ CodeSet = nl_langinfo(CODESET);
-+ setenv("LANG", Lang, 1);
-+ }
-+ login_close(Lc);
-+ }
-+ }
-+#endif
- if (CodeSet) {
- bool known = SI::SetSystemCharacterTable(CodeSet);
- isyslog("codeset is '%s' - %s", CodeSet, known ? "known" : "unknown");
-Index: PLUGINS/src/svdrpdemo/svdrpdemo.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/PLUGINS/src/svdrpdemo/svdrpdemo.c,v
-retrieving revision 1.1.1.2
-retrieving revision 1.4
-diff -u -r1.1.1.2 -r1.4
-Index: libsi/headers.h
-===================================================================
-RCS file: /progs/network/ccvs/vdr/libsi/headers.h,v
-retrieving revision 1.1.1.2
-retrieving revision 1.3
-diff -u -r1.1.1.2 -r1.3
---- libsi/headers.h 2010/02/17 10:14:45 1.1.1.2
-+++ libsi/headers.h 2010/02/17 10:46:56 1.3
-@@ -17,7 +17,11 @@
- #ifndef LIBSI_HEADERS_H
- #define LIBSI_HEADERS_H
-
-+#ifdef __FreeBSD__
-+#include <sys/endian.h>
-+#else
- #include <endian.h>
-+#endif
-
- namespace SI {
-
-Index: libsi/si.c
-===================================================================
-RCS file: /progs/network/ccvs/vdr/libsi/si.c,v
-retrieving revision 1.1.1.4
-retrieving revision 1.7
-diff -u -r1.1.1.4 -r1.7
---- libsi/si.c 2010/03/01 09:42:49 1.1.1.4
-+++ libsi/si.c 2010/03/01 09:58:08 1.7
-@@ -13,7 +13,9 @@
- #include "si.h"
- #include <errno.h>
- #include <iconv.h>
-+#ifndef __FreeBSD__
- #include <malloc.h>
-+#endif
- #include <stdlib.h> // for broadcaster stupidity workaround
- #include <string.h>
- #include "descriptor.h"
---- PLUGINS/src/dvbsddevice/Makefile.orig
-+++ PLUGINS/src/dvbsddevice/Makefile
-@@ -45,7 +45,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -100,7 +100,11 @@ i18n: $(I18Nmsgs) $(I18Npot)
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: $(I18Npo) clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/hello/Makefile.orig
-+++ PLUGINS/src/hello/Makefile
-@@ -45,7 +45,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -100,7 +100,11 @@ i18n: $(I18Nmsgs)
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: $(I18Npo) clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/osddemo/Makefile.orig
-+++ PLUGINS/src/osddemo/Makefile
-@@ -43,7 +43,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -73,7 +73,11 @@ $(DEPFILE): Makefile
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/pictures/Makefile.orig
-+++ PLUGINS/src/pictures/Makefile
-@@ -45,7 +45,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -100,7 +100,11 @@ i18n: $(I18Nmsgs) $(I18Npot)
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: $(I18Npo) clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/servicedemo/Makefile.orig
-+++ PLUGINS/src/servicedemo/Makefile
-@@ -45,7 +45,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -75,11 +75,19 @@ $(DEPFILE): Makefile
-
- libvdr-$(PLUGIN1).so: $(PLUGIN1).o
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN1).o -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- libvdr-$(PLUGIN2).so: $(PLUGIN2).o
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(PLUGIN2).o -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/skincurses/Makefile.orig
-+++ PLUGINS/src/skincurses/Makefile
-@@ -45,7 +45,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -100,7 +100,11 @@ i18n: $(I18Nmsgs) $(I18Npot)
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -lncursesw -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: $(I18Npo) clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/status/Makefile.orig
-+++ PLUGINS/src/status/Makefile
-@@ -43,7 +43,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -73,7 +73,11 @@ $(DEPFILE): Makefile
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/svdrpdemo/Makefile.orig
-+++ PLUGINS/src/svdrpdemo/Makefile
-@@ -43,7 +43,7 @@ PACKAGE = vdr-$(ARCHIVE)
-
- ### Includes and Defines (add further entries here):
-
--INCLUDES += -I$(VDRDIR)/include
-+INCLUDES = -I$(VDRDIR)/include -I${LOCALBASE}/include
-
- DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
-
-@@ -73,7 +73,11 @@ $(DEPFILE): Makefile
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
-+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/epgtableid0/Makefile.orig
-+++ PLUGINS/src/epgtableid0/Makefile
-@@ -100,7 +100,11 @@ i18n: $(I18Nmsgs) $(I18Npot)
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: $(I18Npo) clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)
---- PLUGINS/src/rcu/Makefile.orig
-+++ PLUGINS/src/rcu/Makefile
-@@ -100,7 +100,11 @@ i18n: $(I18Nmsgs) $(I18Npot)
-
- libvdr-$(PLUGIN).so: $(OBJS)
- $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
-+ifdef FREEBSD
-+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
-+else
- @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
-+endif
-
- dist: $(I18Npo) clean
- @-rm -rf $(TMPDIR)/$(ARCHIVE)