From 21694da2c566eaa9c10c6ef28211ff5dcc64fc0b Mon Sep 17 00:00:00 2001 From: Juergen Lock Date: Sat, 21 Apr 2012 14:10:58 +0000 Subject: - Update multimedia/vdr and multimedia/vdr-plugins to 1.7.27 . - Update multimedia/vdr-plugin-epgsearch to 1.0.1s20120322 git snapshot. - Update multimedia/vdr-plugin-femon to 1.7.15 . - Update multimedia/vdr-plugin-iptv to 0.5.0 . - Update multimedia/vdr-plugin-osdteletext to 0.9.2 . - Update multimedia/vdr-plugin-streamdev to 0.5.1p20120311 git snapthot. - Update multimedia/vdr-plugin-xineliboutput to 1.0.90s20111129.1002 cvs snapshot. - Bump PORTREVISION for all other plugins and add vdr 1.7.27 compatibility/bugfix patches where necessary. --- multimedia/vdr-plugin-control/Makefile | 2 +- multimedia/vdr-plugin-control/pkg-plist | 2 +- multimedia/vdr-plugin-eepg/Makefile | 2 +- multimedia/vdr-plugin-eepg/pkg-plist | 2 +- multimedia/vdr-plugin-epgsearch/Makefile | 4 +- multimedia/vdr-plugin-epgsearch/distinfo | 4 +- .../vdr-plugin-epgsearch/files/patch-Makefile | 20 +- multimedia/vdr-plugin-epgsearch/pkg-plist | 8 +- multimedia/vdr-plugin-femon/Makefile | 2 +- multimedia/vdr-plugin-femon/distinfo | 4 +- multimedia/vdr-plugin-femon/pkg-plist | 3 +- multimedia/vdr-plugin-infosatepg/Makefile | 2 +- .../files/patch-infosatepg.cpp | 15 +- .../vdr-plugin-infosatepg/files/patch-status.cpp | 21 + .../vdr-plugin-infosatepg/files/patch-status.h | 18 + multimedia/vdr-plugin-infosatepg/pkg-plist | 2 +- multimedia/vdr-plugin-iptv/Makefile | 3 +- multimedia/vdr-plugin-iptv/distinfo | 4 +- .../vdr-plugin-iptv/files/patch-protocolext.c | 22 +- multimedia/vdr-plugin-iptv/files/patch-socket.c | 30 + multimedia/vdr-plugin-iptv/pkg-plist | 2 +- multimedia/vdr-plugin-markad/Makefile | 2 +- multimedia/vdr-plugin-markad/pkg-plist | 2 +- multimedia/vdr-plugin-osdpip/Makefile | 6 +- multimedia/vdr-plugin-osdpip/distinfo | 2 + multimedia/vdr-plugin-osdpip/files/patch-Makefile | 9 + multimedia/vdr-plugin-osdpip/files/patch-i18n.h | 12 + multimedia/vdr-plugin-osdpip/pkg-plist | 2 +- multimedia/vdr-plugin-osdteletext/Makefile | 9 +- multimedia/vdr-plugin-osdteletext/distinfo | 4 +- .../vdr-plugin-osdteletext/files/patch-Makefile | 8 +- .../files/patch-osdteletext-vdr-1.7.27.txt | 47 + .../files/patch-vdr-osdteletext-0.8.3 | 30 - .../files/patch-vdr-osdteletext-0.9.2 | 29 + multimedia/vdr-plugin-osdteletext/pkg-plist | 3 +- multimedia/vdr-plugin-reelchannelscan/Makefile | 2 +- .../files/patch-channelscan.c | 66 ++ .../files/patch-channelscan.h | 22 + .../vdr-plugin-reelchannelscan/files/patch-i18n.c | 18 + .../vdr-plugin-reelchannelscan/files/patch-i18n.h | 11 + .../vdr-plugin-reelchannelscan/files/patch-scan.c | 14 +- multimedia/vdr-plugin-reelchannelscan/pkg-plist | 2 +- multimedia/vdr-plugin-remote/Makefile | 4 +- multimedia/vdr-plugin-remote/files/patch-Makefile | 26 + multimedia/vdr-plugin-remote/pkg-plist | 8 +- multimedia/vdr-plugin-skinenigmang/Makefile | 2 +- multimedia/vdr-plugin-skinenigmang/pkg-plist | 2 +- multimedia/vdr-plugin-sleeptimer/Makefile | 2 +- .../vdr-plugin-sleeptimer/files/patch-Makefile | 9 + multimedia/vdr-plugin-sleeptimer/pkg-plist | 2 +- multimedia/vdr-plugin-softdevice/Makefile | 2 +- .../vdr-plugin-softdevice/files/patch-Makefile | 9 + .../vdr-plugin-softdevice/files/patch-i18n.h | 13 + .../vdr-plugin-softdevice/files/patch-softdevice.c | 12 + multimedia/vdr-plugin-softdevice/pkg-plist | 6 +- multimedia/vdr-plugin-streamdev/Makefile | 10 +- multimedia/vdr-plugin-streamdev/distinfo | 4 +- multimedia/vdr-plugin-streamdev/pkg-plist | 6 +- multimedia/vdr-plugin-ttxtsubs/Makefile | 1 + multimedia/vdr-plugin-ttxtsubs/pkg-plist | 2 +- multimedia/vdr-plugin-upnp/Makefile | 2 +- multimedia/vdr-plugin-upnp/pkg-plist | 2 +- multimedia/vdr-plugin-vdrmanager/Makefile | 1 + multimedia/vdr-plugin-vdrmanager/pkg-plist | 2 +- multimedia/vdr-plugin-vnsiserver/Makefile | 2 +- multimedia/vdr-plugin-vnsiserver/pkg-plist | 2 +- multimedia/vdr-plugin-wirbelscan/Makefile | 2 +- multimedia/vdr-plugin-wirbelscan/pkg-plist | 2 +- multimedia/vdr-plugin-xineliboutput/Makefile | 5 +- multimedia/vdr-plugin-xineliboutput/distinfo | 4 +- .../vdr-plugin-xineliboutput/files/patch-configure | 10 +- .../files/patch-xine_input_vdr.c | 11 - .../files/patch-xine_post_audiochannel.c | 47 - multimedia/vdr-plugin-xineliboutput/pkg-plist | 2 +- multimedia/vdr-plugin-xvdr/Makefile | 2 +- multimedia/vdr-plugin-xvdr/files/patch-rofafor | 84 ++ multimedia/vdr-plugin-xvdr/pkg-plist | 2 +- multimedia/vdr-plugins/Makefile | 3 +- multimedia/vdr/Makefile | 20 +- multimedia/vdr/Makefile.plugins | 4 +- multimedia/vdr/distinfo | 6 +- multimedia/vdr/files/patch-channels.c | 12 + multimedia/vdr/files/patch-clang | 11 - multimedia/vdr/files/patch-dvbdevice.c | 17 - multimedia/vdr/files/patch-dvbdevice.h | 6 +- multimedia/vdr/files/patch-eitscan.c | 11 + .../vdr/files/patch-receiver.h-LEGACY_CRECEIVER | 11 + ...h-__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS | 11 + multimedia/vdr/files/patch-vdr-1.7.22_FreeBSD | 1222 ------------------- multimedia/vdr/files/patch-vdr-1.7.27_FreeBSD | 1226 ++++++++++++++++++++ multimedia/vdr/files/patch-z-config.c | 10 - multimedia/vdr/files/vdr-1.7.27-pat.diff | 44 + multimedia/vdr/pkg-plist | 22 +- 93 files changed, 1937 insertions(+), 1473 deletions(-) create mode 100644 multimedia/vdr-plugin-infosatepg/files/patch-status.cpp create mode 100644 multimedia/vdr-plugin-infosatepg/files/patch-status.h create mode 100644 multimedia/vdr-plugin-iptv/files/patch-socket.c create mode 100644 multimedia/vdr-plugin-osdpip/files/patch-i18n.h create mode 100644 multimedia/vdr-plugin-osdteletext/files/patch-osdteletext-vdr-1.7.27.txt delete mode 100644 multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.8.3 create mode 100644 multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.9.2 create mode 100644 multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.c create mode 100644 multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.h create mode 100644 multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.c create mode 100644 multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.h create mode 100644 multimedia/vdr-plugin-softdevice/files/patch-i18n.h create mode 100644 multimedia/vdr-plugin-softdevice/files/patch-softdevice.c delete mode 100644 multimedia/vdr-plugin-xineliboutput/files/patch-xine_input_vdr.c delete mode 100644 multimedia/vdr-plugin-xineliboutput/files/patch-xine_post_audiochannel.c create mode 100644 multimedia/vdr-plugin-xvdr/files/patch-rofafor create mode 100644 multimedia/vdr/files/patch-channels.c delete mode 100644 multimedia/vdr/files/patch-clang create mode 100644 multimedia/vdr/files/patch-eitscan.c create mode 100644 multimedia/vdr/files/patch-receiver.h-LEGACY_CRECEIVER create mode 100644 multimedia/vdr/files/patch-recording.h-__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS delete mode 100644 multimedia/vdr/files/patch-vdr-1.7.22_FreeBSD create mode 100644 multimedia/vdr/files/patch-vdr-1.7.27_FreeBSD delete mode 100644 multimedia/vdr/files/patch-z-config.c create mode 100644 multimedia/vdr/files/vdr-1.7.27-pat.diff (limited to 'multimedia') diff --git a/multimedia/vdr-plugin-control/Makefile b/multimedia/vdr-plugin-control/Makefile index 37ee958b9ebd..58ded7778956 100644 --- a/multimedia/vdr-plugin-control/Makefile +++ b/multimedia/vdr-plugin-control/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-control PORTVERSION= 0.0.2a45 -PORTREVISION= 10 +PORTREVISION= 11 CATEGORIES= multimedia MASTER_SITES= http://ricomp.de/vdr/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION:S/a45/a/}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-control/pkg-plist b/multimedia/vdr-plugin-control/pkg-plist index b2546cab6308..10b75953d983 100644 --- a/multimedia/vdr-plugin-control/pkg-plist +++ b/multimedia/vdr-plugin-control/pkg-plist @@ -1 +1 @@ -lib/vdr/libvdr-control.so.1.7.22 +lib/vdr/libvdr-control.so.%%APIVERSION%% diff --git a/multimedia/vdr-plugin-eepg/Makefile b/multimedia/vdr-plugin-eepg/Makefile index 08dffb9d4e0d..75f310d00408 100644 --- a/multimedia/vdr-plugin-eepg/Makefile +++ b/multimedia/vdr-plugin-eepg/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-eepg PORTVERSION= 0.0.6p2011071921 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= multimedia MASTER_SITES= LOCAL/nox/ DISTNAME= ${PORTNAME}-${PORTVERSION:C/p.*/pre/}-0-g${GITHASH} diff --git a/multimedia/vdr-plugin-eepg/pkg-plist b/multimedia/vdr-plugin-eepg/pkg-plist index 3063cb01cdf6..b10c9a4d50fa 100644 --- a/multimedia/vdr-plugin-eepg/pkg-plist +++ b/multimedia/vdr-plugin-eepg/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-eepg.so.1.7.22 +lib/vdr/libvdr-eepg.so.%%APIVERSION%% @exec /usr/bin/install -o %%VDR_USER%% -g %%VDR_GROUP%% -d %D/etc/vdr/plugins/eepg etc/vdr/plugins/eepg/eepg.equiv.IT @unexec if cmp -s %D/etc/vdr/plugins/eepg/eepg.equiv.sample %D/etc/vdr/plugins/eepg/eepg.equiv; then rm -f %D/etc/vdr/plugins/eepg/eepg.equiv; fi diff --git a/multimedia/vdr-plugin-epgsearch/Makefile b/multimedia/vdr-plugin-epgsearch/Makefile index c102647a7081..29f00390e86f 100644 --- a/multimedia/vdr-plugin-epgsearch/Makefile +++ b/multimedia/vdr-plugin-epgsearch/Makefile @@ -6,12 +6,10 @@ # PORTNAME= vdr-plugin-epgsearch -PORTVERSION= 0.9.25b20s20110221 -PORTREVISION= 6 +PORTVERSION= 1.0.1s20120322 CATEGORIES= multimedia MASTER_SITES= http://winni.vdr-developer.org/epgsearch/downloads/beta/:beta \ LOCAL/nox/:snapshot -DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${PORTVERSION:S/b/.beta/}${DISTVERSIONSUFFIX} DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:snapshot MAINTAINER= nox@FreeBSD.org diff --git a/multimedia/vdr-plugin-epgsearch/distinfo b/multimedia/vdr-plugin-epgsearch/distinfo index a63c6bd731fb..e6ab78088e1c 100644 --- a/multimedia/vdr-plugin-epgsearch/distinfo +++ b/multimedia/vdr-plugin-epgsearch/distinfo @@ -1,2 +1,2 @@ -SHA256 (vdr/vdr-epgsearch-0.9.25.beta20s20110221.tar.bz2) = 9e2cad75601a68897841184574fe04e264ee26407c6f28f5ae9c23c888522615 -SIZE (vdr/vdr-epgsearch-0.9.25.beta20s20110221.tar.bz2) = 358904 +SHA256 (vdr/vdr-plugin-epgsearch-1.0.1s20120322.tar.bz2) = 3aeba4e396fcab71a15cb7a6dbd84f359b7770ef8d15aee05f0fffecb69e276e +SIZE (vdr/vdr-plugin-epgsearch-1.0.1s20120322.tar.bz2) = 355342 diff --git a/multimedia/vdr-plugin-epgsearch/files/patch-Makefile b/multimedia/vdr-plugin-epgsearch/files/patch-Makefile index 5897dee386f4..7f3b80b4cac5 100644 --- a/multimedia/vdr-plugin-epgsearch/files/patch-Makefile +++ b/multimedia/vdr-plugin-epgsearch/files/patch-Makefile @@ -1,9 +1,9 @@ --- a/Makefile +++ b/Makefile -@@ -226,19 +226,35 @@ generate-i18n: i18n-template.h $(I18Npot +@@ -235,19 +235,35 @@ i18n: $(I18Nmsgs) $(I18Npot) libvdr-$(PLUGIN).so: $(OBJS) - $(CXX) $(CXXFLAGS) -shared $(OBJS) $(LIBS) -o $@ + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@ +ifdef FREEBSD + @cp -f $@ $(LIBDIR)/$@.$(APIVERSION) +else @@ -11,7 +11,7 @@ +endif libvdr-$(PLUGIN2).so: $(OBJS2) - $(CXX) $(CXXFLAGS) -shared $(OBJS2) $(LIBS2) -o $@ + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS2) $(LIBS2) -o $@ +ifdef FREEBSD + @cp -f $@ $(LIBDIR)/$@.$(APIVERSION) +else @@ -19,7 +19,7 @@ +endif libvdr-$(PLUGIN3).so: $(OBJS3) - $(CXX) $(CXXFLAGS) -shared $(OBJS3) $(LIBS3) -o $@ + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS3) $(LIBS3) -o $@ +ifdef FREEBSD + @cp -f $@ $(LIBDIR)/$@.$(APIVERSION) +else @@ -27,7 +27,7 @@ +endif libvdr-$(PLUGIN4).so: $(OBJS4) - $(CXX) $(CXXFLAGS) -shared $(OBJS4) $(LIBS4) -o $@ + $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS4) $(LIBS4) -o $@ +ifdef FREEBSD + @cp -f $@ $(LIBDIR)/$@.$(APIVERSION) +else @@ -35,11 +35,11 @@ +endif createcats: createcats.o Makefile - $(CXX) $(CXXFLAGS) createcats.o -o $@ -@@ -278,3 +294,15 @@ install-doc: - clean: - @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot $(PODIR)/*~ - @-rm -f $(OBJS) $(OBJS2) $(OBJS3) $(OBJS4) $(DEPFILE) *.so *.tgz core* *~ createcats createcats.o pod2*.tmp + $(CXX) $(CXXFLAGS) $(LDFLAGS) createcats.o -o $@ +@@ -299,3 +315,15 @@ clean: + @-rm -f $(OBJS) $(OBJS2) $(OBJS3) $(OBJS4) $(DEPFILE) *.so *.tgz core* createcats createcats.o pod2*.tmp + @-find . \( -name "*~" -o -name "#*#" \) -print0 | xargs -0r rm -f + @-rm -rf doc html man + +install: + ${INSTALL_PROGRAM} $(LIBDIR)/libvdr-$(PLUGIN).so.$(APIVERSION) $(PREFIX)/lib/vdr/libvdr-$(PLUGIN).so.$(APIVERSION) diff --git a/multimedia/vdr-plugin-epgsearch/pkg-plist b/multimedia/vdr-plugin-epgsearch/pkg-plist index 930835d0cc27..dc7073776186 100644 --- a/multimedia/vdr-plugin-epgsearch/pkg-plist +++ b/multimedia/vdr-plugin-epgsearch/pkg-plist @@ -1,7 +1,7 @@ -lib/vdr/libvdr-epgsearch.so.1.7.22 -lib/vdr/libvdr-epgsearchonly.so.1.7.22 -lib/vdr/libvdr-conflictcheckonly.so.1.7.22 -lib/vdr/libvdr-quickepgsearch.so.1.7.22 +lib/vdr/libvdr-epgsearch.so.%%APIVERSION%% +lib/vdr/libvdr-epgsearchonly.so.%%APIVERSION%% +lib/vdr/libvdr-conflictcheckonly.so.%%APIVERSION%% +lib/vdr/libvdr-quickepgsearch.so.%%APIVERSION%% %%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-epgsearch.mo %%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-epgsearch.mo %%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-epgsearch.mo diff --git a/multimedia/vdr-plugin-femon/Makefile b/multimedia/vdr-plugin-femon/Makefile index c3de26f2aad4..2c79fab2509c 100644 --- a/multimedia/vdr-plugin-femon/Makefile +++ b/multimedia/vdr-plugin-femon/Makefile @@ -6,7 +6,7 @@ # PORTNAME= vdr-plugin-femon -PORTVERSION= 1.7.11 +PORTVERSION= 1.7.15 CATEGORIES= multimedia MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-femon/distinfo b/multimedia/vdr-plugin-femon/distinfo index 73966e80a63a..3549259ed37f 100644 --- a/multimedia/vdr-plugin-femon/distinfo +++ b/multimedia/vdr-plugin-femon/distinfo @@ -1,2 +1,2 @@ -SHA256 (vdr/vdr-femon-1.7.11.tgz) = 7ec2802a81d37f5914f2b964769c459b7cbcd2c42cd4151a854707fc999b6a96 -SIZE (vdr/vdr-femon-1.7.11.tgz) = 75044 +SHA256 (vdr/vdr-femon-1.7.15.tgz) = 9520b5cae795215aa84eb18760be9c00a637fd7ae755a1c00f3c988c6118d80f +SIZE (vdr/vdr-femon-1.7.15.tgz) = 77215 diff --git a/multimedia/vdr-plugin-femon/pkg-plist b/multimedia/vdr-plugin-femon/pkg-plist index 4be4b63af796..877b951563ed 100644 --- a/multimedia/vdr-plugin-femon/pkg-plist +++ b/multimedia/vdr-plugin-femon/pkg-plist @@ -1,9 +1,10 @@ -lib/vdr/libvdr-femon.so.1.7.22 +lib/vdr/libvdr-femon.so.%%APIVERSION%% %%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/et_EE/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-femon.mo +%%NLS%%share/locale/hu_HU/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/lt_LT/LC_MESSAGES/vdr-femon.mo %%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-femon.mo diff --git a/multimedia/vdr-plugin-infosatepg/Makefile b/multimedia/vdr-plugin-infosatepg/Makefile index 473c30d804d3..5d4e344523f3 100644 --- a/multimedia/vdr-plugin-infosatepg/Makefile +++ b/multimedia/vdr-plugin-infosatepg/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-infosatepg PORTVERSION= 0.0.11 -PORTREVISION= 11 +PORTREVISION= 12 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/342/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-infosatepg/files/patch-infosatepg.cpp b/multimedia/vdr-plugin-infosatepg/files/patch-infosatepg.cpp index 8e33a6a351d0..4e856cf8db01 100644 --- a/multimedia/vdr-plugin-infosatepg/files/patch-infosatepg.cpp +++ b/multimedia/vdr-plugin-infosatepg/files/patch-infosatepg.cpp @@ -1,7 +1,14 @@ ---- a/infosatepg.cpp -+++ b/infosatepg.cpp -@@ -193,7 +193,7 @@ void cPluginInfosatepg::MainThreadHook(v +--- infosatepg.cpp.orig ++++ infosatepg.cpp +@@ -190,10 +190,14 @@ void cPluginInfosatepg::MainThreadHook(v + if (dev) + { + if (!dev->ProvidesTransponder(chan)) continue; // device cannot provide transponder -> skip ++#if VDRVERSNUM >= 10726 ++ if (statusMonitor->m_LiveView) continue; // EITScanner is updating EPG -> skip ++#else if (EITScanner.UsesDevice(dev)) continue; // EITScanner is updating EPG -> skip ++#endif if (dev->Receiving()) continue; // device is recording -> skip if (dev->IsPrimaryDevice()) continue; // device is primary -> skip - if (cDevice::ActualDevice()->CardIndex()==i) continue; // device is live viewing -> skip @@ -9,7 +16,7 @@ if (dev->IsTunedToTransponder(chan)) { // we already have a device which is tuned (maybe switched manually?) -@@ -403,7 +403,7 @@ cString cPluginInfosatepg::SVDRPCommand( +@@ -403,7 +407,7 @@ cString cPluginInfosatepg::SVDRPCommand( cString head2; head2="\n" \ " | | missed | | | unlocated\n" \ diff --git a/multimedia/vdr-plugin-infosatepg/files/patch-status.cpp b/multimedia/vdr-plugin-infosatepg/files/patch-status.cpp new file mode 100644 index 000000000000..454098d01eae --- /dev/null +++ b/multimedia/vdr-plugin-infosatepg/files/patch-status.cpp @@ -0,0 +1,21 @@ +--- status.cpp.orig ++++ status.cpp +@@ -21,11 +21,18 @@ cStatusInfosatepg::~cStatusInfosatepg(vo + if (myFilter) delete myFilter; + } + ++#if VDRVERSNUM >= 10726 ++void cStatusInfosatepg::ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView) ++#else + void cStatusInfosatepg::ChannelSwitch(const cDevice *Device, int ChannelNumber) ++#endif + { + if (!ChannelNumber) return; + if (!Device) return; // just to be safe + ++#if VDRVERSNUM >= 10726 ++ m_LiveView = LiveView; ++#endif + bool bAddFilter=false; + + // just add filter if we aren't locked diff --git a/multimedia/vdr-plugin-infosatepg/files/patch-status.h b/multimedia/vdr-plugin-infosatepg/files/patch-status.h new file mode 100644 index 000000000000..e53beb65135e --- /dev/null +++ b/multimedia/vdr-plugin-infosatepg/files/patch-status.h @@ -0,0 +1,18 @@ +--- status.h.orig ++++ status.h +@@ -20,8 +20,15 @@ private: + cDevice *myFilterDevice; + cGlobalInfosatepg *global; + protected: ++#if VDRVERSNUM >= 10726 ++ virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView); ++#else + virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber); ++#endif + public: ++#if VDRVERSNUM >= 10726 ++ bool m_LiveView; ++#endif + cStatusInfosatepg(cGlobalInfosatepg *Global); + virtual ~cStatusInfosatepg(void); + }; diff --git a/multimedia/vdr-plugin-infosatepg/pkg-plist b/multimedia/vdr-plugin-infosatepg/pkg-plist index 87d6421c0d3f..fa48aa19d821 100644 --- a/multimedia/vdr-plugin-infosatepg/pkg-plist +++ b/multimedia/vdr-plugin-infosatepg/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-infosatepg.so.1.7.22 +lib/vdr/libvdr-infosatepg.so.%%APIVERSION%% @exec /usr/bin/install -o %%VDR_USER%% -g %%VDR_GROUP%% -d /var/cache/vdr/infosatepg %%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-infosatepg.mo %%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-infosatepg.mo diff --git a/multimedia/vdr-plugin-iptv/Makefile b/multimedia/vdr-plugin-iptv/Makefile index 63ebecf2a5ef..f6182b0bdf5b 100644 --- a/multimedia/vdr-plugin-iptv/Makefile +++ b/multimedia/vdr-plugin-iptv/Makefile @@ -6,8 +6,7 @@ # PORTNAME= vdr-plugin-iptv -PORTVERSION= 0.4.2 -PORTREVISION= 10 +PORTVERSION= 0.5.0 CATEGORIES= multimedia MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/iptv/files/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-iptv/distinfo b/multimedia/vdr-plugin-iptv/distinfo index efd1c9c89b51..1574dc4f93e2 100644 --- a/multimedia/vdr-plugin-iptv/distinfo +++ b/multimedia/vdr-plugin-iptv/distinfo @@ -1,2 +1,2 @@ -SHA256 (vdr/vdr-iptv-0.4.2.tgz) = 3f86533d12414a7fa725eeedc75b64383e0de52b741cf418d9b60af5a76a9739 -SIZE (vdr/vdr-iptv-0.4.2.tgz) = 47565 +SHA256 (vdr/vdr-iptv-0.5.0.tgz) = 83ad8d4117fb8d46ee290aaabccc62bd8e143ffbc9f6a5d6328449de8b5a13cf +SIZE (vdr/vdr-iptv-0.5.0.tgz) = 49178 diff --git a/multimedia/vdr-plugin-iptv/files/patch-protocolext.c b/multimedia/vdr-plugin-iptv/files/patch-protocolext.c index 65a30dae98ac..809862018e51 100644 --- a/multimedia/vdr-plugin-iptv/files/patch-protocolext.c +++ b/multimedia/vdr-plugin-iptv/files/patch-protocolext.c @@ -1,6 +1,24 @@ --- a/protocolext.c +++ b/protocolext.c -@@ -82,6 +82,7 @@ void cIptvProtocolExt::TerminateScript(v +@@ -55,10 +55,17 @@ void cIptvProtocolExt::ExecuteScript(voi + // Execute the external script + cString cmd = cString::sprintf("%s %d %d", *scriptFile, scriptParameter, socketPort); + debug("cIptvProtocolExt::ExecuteScript(child): %s\n", *cmd); ++#ifdef linux + if (execl("/bin/bash", "sh", "-c", *cmd, (char *)NULL) == -1) { + error("Script execution failed: %s", *cmd); + _exit(-1); + } ++#else ++ if (execl("/bin/sh", "sh", "-c", *cmd, (char *)NULL) == -1) { ++ error("Script execution failed: %s", *cmd); ++ _exit(-1); ++ } ++#endif + _exit(0); + } + else { +@@ -86,6 +93,7 @@ void cIptvProtocolExt::TerminateScript(v error("Script '%s' won't terminate - killing it!", *scriptFile); kill(pid, SIGKILL); } @@ -8,7 +26,7 @@ // Clear wait status to make sure child exit status is accessible memset(&waitStatus, '\0', sizeof(waitStatus)); // Wait for child termination -@@ -94,6 +95,17 @@ void cIptvProtocolExt::TerminateScript(v +@@ -98,6 +106,17 @@ void cIptvProtocolExt::TerminateScript(v debug("Child (%d) exited as expected\n", pid); waitOver = true; } diff --git a/multimedia/vdr-plugin-iptv/files/patch-socket.c b/multimedia/vdr-plugin-iptv/files/patch-socket.c new file mode 100644 index 000000000000..84da27005d80 --- /dev/null +++ b/multimedia/vdr-plugin-iptv/files/patch-socket.c @@ -0,0 +1,30 @@ +--- a/socket.c ++++ b/socket.c +@@ -57,9 +57,11 @@ bool cIptvSocket::OpenSocket(const int P + // Allow multiple sockets to use the same PORT number + ERROR_IF_FUNC(setsockopt(socketDesc, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)) < 0, "setsockopt(SO_REUSEADDR)", + CloseSocket(), return false); ++#ifndef __FreeBSD__ + // Allow packet information to be fetched + ERROR_IF_FUNC(setsockopt(socketDesc, SOL_IP, IP_PKTINFO, &yes, sizeof(yes)) < 0, "setsockopt(IP_PKTINFO)", + CloseSocket(), return false); ++#endif + // Bind socket + memset(&sockAddr, '\0', sizeof(sockAddr)); + sockAddr.sin_family = AF_INET; +@@ -180,6 +182,7 @@ int cIptvUdpSocket::Read(unsigned char* + } + else if (len > 0) { + // Process auxiliary received data and validate source address ++#ifndef __FreeBSD__ + for (cmsg = CMSG_FIRSTHDR(&msgh); (sourceAddr != INADDR_ANY) && (cmsg != NULL); cmsg = CMSG_NXTHDR(&msgh, cmsg)) { + if ((cmsg->cmsg_level == SOL_IP) && (cmsg->cmsg_type == IP_PKTINFO)) { + struct in_pktinfo *i = (struct in_pktinfo *)CMSG_DATA(cmsg); +@@ -189,6 +192,7 @@ int cIptvUdpSocket::Read(unsigned char* + } + } + } ++#endif + if (BufferAddr[0] == TS_SYNC_BYTE) + return len; + else if (len > 3) { diff --git a/multimedia/vdr-plugin-iptv/pkg-plist b/multimedia/vdr-plugin-iptv/pkg-plist index 2599097f2c73..ec45e971abce 100644 --- a/multimedia/vdr-plugin-iptv/pkg-plist +++ b/multimedia/vdr-plugin-iptv/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-iptv.so.1.7.22 +lib/vdr/libvdr-iptv.so.%%APIVERSION%% @unexec if cmp -s %D/etc/vdr/plugins/iptv/image.sh.sample %D/etc/vdr/plugins/iptv/image.sh; then rm -f %D/etc/vdr/plugins/iptv/image.sh; fi etc/vdr/plugins/iptv/image.sh.sample @exec if [ ! -f %D/etc/vdr/plugins/iptv/image.sh ] ; then cp -p %D/%F %B/image.sh; fi diff --git a/multimedia/vdr-plugin-markad/Makefile b/multimedia/vdr-plugin-markad/Makefile index 95326fc91441..53a62d0ef890 100644 --- a/multimedia/vdr-plugin-markad/Makefile +++ b/multimedia/vdr-plugin-markad/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-markad PORTVERSION= 0.1.2 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/578/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-markad/pkg-plist b/multimedia/vdr-plugin-markad/pkg-plist index e971caec54ff..022b5e006971 100644 --- a/multimedia/vdr-plugin-markad/pkg-plist +++ b/multimedia/vdr-plugin-markad/pkg-plist @@ -1,5 +1,5 @@ bin/markad -lib/vdr/libvdr-markad.so.1.7.22 +lib/vdr/libvdr-markad.so.%%APIVERSION%% %%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-markad.mo %%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-markad.mo %%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-markad.mo diff --git a/multimedia/vdr-plugin-osdpip/Makefile b/multimedia/vdr-plugin-osdpip/Makefile index af65609e0329..364b398a9ae6 100644 --- a/multimedia/vdr-plugin-osdpip/Makefile +++ b/multimedia/vdr-plugin-osdpip/Makefile @@ -7,12 +7,15 @@ PORTNAME= vdr-plugin-osdpip PORTVERSION= 0.1.1 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/880/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} EXTRACT_SUFX= .tgz +PATCH_SITES= http://projects.vdr-developer.org/attachments/download/893/ +PATCHFILES= osdpip-vdr-1.7.26.diff + MAINTAINER= nox@FreeBSD.org COMMENT= Video Disk Recorder - picture-in-picture plugin @@ -20,6 +23,7 @@ LIB_DEPENDS+= avcodec.1:${PORTSDIR}/multimedia/ffmpeg DIST_SUBDIR= vdr PATCH_STRIP= -p1 +PATCH_DIST_STRIP= -p1 HAVE_CONFIGURE= yes PORTDOCS= COPYING README MAKE_JOBS_SAFE= yes diff --git a/multimedia/vdr-plugin-osdpip/distinfo b/multimedia/vdr-plugin-osdpip/distinfo index 42c4e806e84b..718035af04ed 100644 --- a/multimedia/vdr-plugin-osdpip/distinfo +++ b/multimedia/vdr-plugin-osdpip/distinfo @@ -1,2 +1,4 @@ SHA256 (vdr/vdr-osdpip-0.1.1.tgz) = 777f5fd9abbfbf43227c78eb2b363d3bdade2b368425ed78caa836d4c38bfef4 SIZE (vdr/vdr-osdpip-0.1.1.tgz) = 53272 +SHA256 (vdr/osdpip-vdr-1.7.26.diff) = fa58b9671439b7a5a13d7b3e93b5a7596aecf5169b4400b5bf5a922c90e6132f +SIZE (vdr/osdpip-vdr-1.7.26.diff) = 1057 diff --git a/multimedia/vdr-plugin-osdpip/files/patch-Makefile b/multimedia/vdr-plugin-osdpip/files/patch-Makefile index 99cd31e3d542..70d9b1e7c8ff 100644 --- a/multimedia/vdr-plugin-osdpip/files/patch-Makefile +++ b/multimedia/vdr-plugin-osdpip/files/patch-Makefile @@ -1,5 +1,14 @@ --- osdpip-0.1.0/Makefile.orig +++ osdpip-0.1.0/Makefile +@@ -107,7 +107,7 @@ endif + + ### The object files (add further files here): + +-OBJS = $(PLUGIN).o osd_info.o remux.o osd.o receiver.o setup.o i18n.o pes.o quantize.o decoder.o ++OBJS = $(PLUGIN).o osd_info.o remux.o osd.o receiver.o setup.o pes.o quantize.o decoder.o + + ### The main target: + @@ -171,3 +173,6 @@ dist: clean clean: diff --git a/multimedia/vdr-plugin-osdpip/files/patch-i18n.h b/multimedia/vdr-plugin-osdpip/files/patch-i18n.h new file mode 100644 index 000000000000..601768c00d49 --- /dev/null +++ b/multimedia/vdr-plugin-osdpip/files/patch-i18n.h @@ -0,0 +1,12 @@ +--- i18n.h.orig ++++ i18n.h +@@ -28,8 +28,8 @@ + #if (APIVERSNUM < 10507) + #define trNOOP(a) a + #define trVDR tr +-#endif + + extern const tI18nPhrase Phrases[]; ++#endif + + #endif // VDR_OSDPIP_I18N_H diff --git a/multimedia/vdr-plugin-osdpip/pkg-plist b/multimedia/vdr-plugin-osdpip/pkg-plist index eba7c5bdec0a..8ca58eb5e03a 100644 --- a/multimedia/vdr-plugin-osdpip/pkg-plist +++ b/multimedia/vdr-plugin-osdpip/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-osdpip.so.1.7.22 +lib/vdr/libvdr-osdpip.so.%%APIVERSION%% %%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-osdpip.mo %%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-osdpip.mo %%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-osdpip.mo diff --git a/multimedia/vdr-plugin-osdteletext/Makefile b/multimedia/vdr-plugin-osdteletext/Makefile index e5bb7f75d8ed..af26b0412cd2 100644 --- a/multimedia/vdr-plugin-osdteletext/Makefile +++ b/multimedia/vdr-plugin-osdteletext/Makefile @@ -6,13 +6,16 @@ # PORTNAME= vdr-plugin-osdteletext -PORTVERSION= 0.9.0 -PORTREVISION= 9 +PORTVERSION= 0.9.2 CATEGORIES= multimedia -MASTER_SITES= http://projects.vdr-developer.org/attachments/download/416/ +MASTER_SITES= http://projects.vdr-developer.org/attachments/download/899/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} EXTRACT_SUFX= .tgz +#PATCH_SITES= http://projects.vdr-developer.org/attachments/download/901/ +#PATCHFILES= receiver-fix-2.diff +#PATCH_DIST_STRIP= -p1 + MAINTAINER= nox@FreeBSD.org COMMENT= Video Disk Recorder - OSD teletext plugin diff --git a/multimedia/vdr-plugin-osdteletext/distinfo b/multimedia/vdr-plugin-osdteletext/distinfo index a9f0571cb36a..c93c440c17ad 100644 --- a/multimedia/vdr-plugin-osdteletext/distinfo +++ b/multimedia/vdr-plugin-osdteletext/distinfo @@ -1,2 +1,2 @@ -SHA256 (vdr/vdr-osdteletext-0.9.0.tgz) = 6ae02a6918e8eababf49a9388a89740d1d56f3f63d2bcc99b4dc7c8108035240 -SIZE (vdr/vdr-osdteletext-0.9.0.tgz) = 60498 +SHA256 (vdr/vdr-osdteletext-0.9.2.tgz) = d6c7eee8dc81d0e9499250b3f6540603d8d290d9a1ecbaa4d19092f606662bac +SIZE (vdr/vdr-osdteletext-0.9.2.tgz) = 60028 diff --git a/multimedia/vdr-plugin-osdteletext/files/patch-Makefile b/multimedia/vdr-plugin-osdteletext/files/patch-Makefile index cf8be7f4f332..6aaa8ca6b801 100644 --- a/multimedia/vdr-plugin-osdteletext/files/patch-Makefile +++ b/multimedia/vdr-plugin-osdteletext/files/patch-Makefile @@ -1,14 +1,10 @@ --- osdteletext-0.8.3/Makefile.orig +++ osdteletext-0.8.3/Makefile -@@ -110,8 +114,11 @@ dist: clean - - clean: - @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot -- @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ +@@ -113,5 +113,8 @@ clean: + @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ install: + ${INSTALL_PROGRAM} $(LIBDIR)/libvdr-$(PLUGIN).so.$(APIVERSION) $(PREFIX)/lib/vdr/libvdr-$(PLUGIN).so.$(APIVERSION) -+ @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ + +install-readme: @install -d ../../man diff --git a/multimedia/vdr-plugin-osdteletext/files/patch-osdteletext-vdr-1.7.27.txt b/multimedia/vdr-plugin-osdteletext/files/patch-osdteletext-vdr-1.7.27.txt new file mode 100644 index 000000000000..33c6f5889ed9 --- /dev/null +++ b/multimedia/vdr-plugin-osdteletext/files/patch-osdteletext-vdr-1.7.27.txt @@ -0,0 +1,47 @@ +diff --git a/txtrecv.c b/txtrecv.c +index 3dc89f6..3de5c1d 100644 +--- a/txtrecv.c ++++ b/txtrecv.c +@@ -518,7 +518,7 @@ void cTxtStatus::ChannelSwitch(const cDevice *Device, int ChannelNumber + int TPid = newLiveChannel->Tpid(); + + if (TPid) { +- receiver = new cTxtReceiver(TPid, newLiveChannel->GetChannelID(), storeTopText, storage); ++ receiver = new cTxtReceiver(newLiveChannel, storeTopText, storage); + cDevice::ActualDevice()->AttachReceiver(receiver); + } + +@@ -526,10 +526,18 @@ void cTxtStatus::ChannelSwitch(const cDevice *Device, int ChannelNumber + } + + +-cTxtReceiver::cTxtReceiver(int TPid, tChannelID chan, bool storeTopText, Storage* storage) +- : cReceiver(chan, -1, TPid), cThread("osdteletext-receiver"), ++cTxtReceiver::cTxtReceiver(const cChannel* chan, bool storeTopText, Storage* storage) ++#if APIVERSNUM >= 10712 ++ : cReceiver(chan, -1), cThread("osdteletext-receiver"), ++#else ++ : cReceiver(chan, -1, chan->Tpid()), cThread("osdteletext-receiver"), ++#endif + TxtPage(0), storeTopText(storeTopText), buffer((188+60)*75), storage(storage) + { ++#if APIVERSNUM >= 10712 ++ SetPids(NULL); ++ AddPid(chan->Tpid()); ++#endif + storage->prepareDirectory(ChannelID()); + + // 10 ms timeout on getting TS frames +diff --git a/txtrecv.h b/txtrecv.h +index a111d0d..3468b6e 100644 +--- a/txtrecv.h ++++ b/txtrecv.h +@@ -165,7 +165,7 @@ protected: + virtual void Receive(uchar *Data, int Length); + virtual void Action(); + public: +- cTxtReceiver(int TPid, tChannelID chan, bool storeTopText, Storage* storage); ++ cTxtReceiver(const cChannel* chan, bool storeTopText, Storage* storage); + virtual ~cTxtReceiver(); + virtual void Stop(); + }; diff --git a/multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.8.3 b/multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.8.3 deleted file mode 100644 index 2ca093201bf4..000000000000 --- a/multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.8.3 +++ /dev/null @@ -1,30 +0,0 @@ -diff -ur orig/osdteletext-0.8.3/Makefile osdteletext-0.8.3/Makefile ---- orig/osdteletext-0.8.3/Makefile 2009-05-25 20:28:59.000000000 +0200 -+++ osdteletext-0.8.3/Makefile 2010-03-16 17:31:20.000000000 +0100 -@@ -94,7 +94,11 @@ - - libvdr-$(PLUGIN).so: $(OBJS) - $(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ -+ifdef FREEBSD -+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION) -+else - @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) -+endif - - dist: clean - @-rm -rf $(TMPDIR)/$(ARCHIVE) -diff -ur orig/osdteletext-0.8.3/txtrecv.c osdteletext-0.8.3/txtrecv.c ---- orig/osdteletext-0.8.3/txtrecv.c 2009-05-25 20:28:59.000000000 +0200 -+++ osdteletext-0.8.3/txtrecv.c 2010-03-16 17:29:53.000000000 +0100 -@@ -22,7 +22,11 @@ - #include - #include - #include -+#ifdef __FreeBSD__ -+#include -+#else - #include -+#endif - #include - #include - #include diff --git a/multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.9.2 b/multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.9.2 new file mode 100644 index 000000000000..8db6a0967a04 --- /dev/null +++ b/multimedia/vdr-plugin-osdteletext/files/patch-vdr-osdteletext-0.9.2 @@ -0,0 +1,29 @@ +--- Makefile.orig ++++ Makefile +@@ -98,7 +98,11 @@ all: libvdr-$(PLUGIN).so i18n + + 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) +diff -ur orig/osdteletext-0.8.3/txtrecv.c osdteletext-0.8.3/txtrecv.c +--- orig/osdteletext-0.8.3/txtrecv.c 2009-05-25 20:28:59.000000000 +0200 ++++ osdteletext-0.8.3/txtrecv.c 2010-03-16 17:29:53.000000000 +0100 +@@ -22,7 +22,11 @@ + #include + #include + #include ++#ifdef __FreeBSD__ ++#include ++#else + #include ++#endif + #include + #include + #include diff --git a/multimedia/vdr-plugin-osdteletext/pkg-plist b/multimedia/vdr-plugin-osdteletext/pkg-plist index 9a06e57b1e16..54a501ab0b42 100644 --- a/multimedia/vdr-plugin-osdteletext/pkg-plist +++ b/multimedia/vdr-plugin-osdteletext/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-osdteletext.so.1.7.22 +lib/vdr/libvdr-osdteletext.so.%%APIVERSION%% @exec /usr/bin/install -o %%VDR_USER%% -g %%VDR_GROUP%% -d /var/cache/vdr/vtx %%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-osdteletext.mo %%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-osdteletext.mo @@ -8,4 +8,5 @@ lib/vdr/libvdr-osdteletext.so.1.7.22 %%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-osdteletext.mo %%NLS%%share/locale/pt_PT/LC_MESSAGES/vdr-osdteletext.mo %%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-osdteletext.mo +%%NLS%%share/locale/sk_SK/LC_MESSAGES/vdr-osdteletext.mo %%NLS%%share/locale/uk_UA/LC_MESSAGES/vdr-osdteletext.mo diff --git a/multimedia/vdr-plugin-reelchannelscan/Makefile b/multimedia/vdr-plugin-reelchannelscan/Makefile index 2c0fedfbef4c..7705b99df7f7 100644 --- a/multimedia/vdr-plugin-reelchannelscan/Makefile +++ b/multimedia/vdr-plugin-reelchannelscan/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-reelchannelscan PORTVERSION= 0.6.1b1.7.15 -PORTREVISION= 7 +PORTREVISION= 8 CATEGORIES= multimedia MASTER_SITES= LOCAL/nox \ http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu/pool/main/v/vdr-plugin-reelchannelscan/ diff --git a/multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.c b/multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.c new file mode 100644 index 000000000000..89362e6fc64d --- /dev/null +++ b/multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.c @@ -0,0 +1,66 @@ +--- a/channelscan.c ++++ b/channelscan.c +@@ -37,6 +37,11 @@ + eAutoScanStat + cPluginChannelscan::AutoScanStat = AssNone; + ++#if APIVERSNUM > 10723 ++cStringList ++ cPluginChannelscan::Nodes; ++#endif ++ + cScanSetup ScanSetup; + bool OnlyChannelList=false; + +@@ -117,11 +122,51 @@ cPluginChannelscan::Initialize(void) + return true; + } + ++#if APIVERSNUM > 10723 ++bool ++cPluginChannelscan::GetAdapterFrontend(int CardIndex, int &Adapter, int &Frontend) { ++ Adapter = Frontend = -1; ++ if (CardIndex < 0) ++ return false; ++ if (CardIndex < Nodes.Size() && ++ 2 == sscanf(Nodes[CardIndex], "%d %d", &Adapter, &Frontend)) { ++ return true; ++ } ++ return false; ++} ++#endif ++ + bool + cPluginChannelscan::Start(void) + { + // Start any background activities the plugin shall perform. ++#if (APIVERSNUM < 10507) + RegisterI18n(Phrases); ++#endif ++#if APIVERSNUM > 10723 ++ cReadDir DvbDir(DEV_DVB_BASE); ++ if (DvbDir.Ok()) { ++ struct dirent *a; ++ while ((a = DvbDir.Next()) != NULL) { ++ if (strstr(a->d_name, DEV_DVB_ADAPTER) == a->d_name) { ++ int Adapter = strtol(a->d_name + strlen(DEV_DVB_ADAPTER), NULL, 10); ++ cReadDir AdapterDir(AddDirectory(DEV_DVB_BASE, a->d_name)); ++ if (AdapterDir.Ok()) { ++ struct dirent *f; ++ while ((f = AdapterDir.Next()) != NULL) { ++ if (strstr(f->d_name, DEV_DVB_FRONTEND) == f->d_name) { ++ int Frontend = strtol(f->d_name + strlen(DEV_DVB_FRONTEND), NULL, 10); ++ Nodes.Append(strdup(cString::sprintf("%2d %2d", Adapter, Frontend))); ++ } ++ } ++ } ++ } ++ } ++ } ++ ++ if (Nodes.Size() > 0) ++ Nodes.Sort(); ++#endif + return true; + } + diff --git a/multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.h b/multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.h new file mode 100644 index 000000000000..922dd1b4a740 --- /dev/null +++ b/multimedia/vdr-plugin-reelchannelscan/files/patch-channelscan.h @@ -0,0 +1,22 @@ +--- a/channelscan.h ++++ b/channelscan.h +@@ -68,6 +68,9 @@ class cPluginChannelscan:public cPlugin + { + private: + // Add any member variables or functions you may need here. ++#if APIVERSNUM > 10723 ++ static cStringList Nodes; ++#endif + public: + cPluginChannelscan(); + virtual ~ cPluginChannelscan(); +@@ -102,6 +105,9 @@ class cPluginChannelscan:public cPlugin + static eAutoScanStat AutoScanStat; + ChannelScanData channelData_; + bool channelDataPresent_; ++#if APIVERSNUM > 10723 ++ static bool GetAdapterFrontend(int CardIndex, int &Adapter, int &Frontend); ++#endif + }; + + // --- cSetupMenu ------------------------------------------------------ diff --git a/multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.c b/multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.c new file mode 100644 index 000000000000..12fdad0b08ce --- /dev/null +++ b/multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.c @@ -0,0 +1,18 @@ +--- a/i18n.c ++++ b/i18n.c +@@ -23,8 +23,10 @@ + * + ***************************************************************************/ + ++#include + #include "i18n.h" + ++#if (APIVERSNUM < 10507) + const tI18nPhrase Phrases[] = { + {"Channel Scan", + "Kanalsuche", +@@ -1881,3 +1883,4 @@ const tI18nPhrase Phrases[] = { + }, + {NULL} + }; ++#endif diff --git a/multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.h b/multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.h new file mode 100644 index 000000000000..1ba299337cbf --- /dev/null +++ b/multimedia/vdr-plugin-reelchannelscan/files/patch-i18n.h @@ -0,0 +1,11 @@ +--- i18n.h.orig ++++ i18n.h +@@ -29,6 +29,8 @@ + #include + #include + ++#if (APIVERSNUM < 10507) + extern const tI18nPhrase Phrases[]; ++#endif + + #endif //_I18N__H diff --git a/multimedia/vdr-plugin-reelchannelscan/files/patch-scan.c b/multimedia/vdr-plugin-reelchannelscan/files/patch-scan.c index 70f6d1566ad0..024cb81c40b9 100644 --- a/multimedia/vdr-plugin-reelchannelscan/files/patch-scan.c +++ b/multimedia/vdr-plugin-reelchannelscan/files/patch-scan.c @@ -1,15 +1,25 @@ --- a/scan.c +++ b/scan.c -@@ -197,7 +197,7 @@ bool cScan::StartScanning(cScanParameter +@@ -197,7 +197,17 @@ bool cScan::StartScanning(cScanParameter #ifndef DEVICE_ATTRIBUTES char buffer[265]; - snprintf(buffer, sizeof(buffer), "/dev/dvb/adapter%d/frontend0", cardnr); ++#if APIVERSNUM > 10723 ++ int Adapter = -1, Frontend = -1; ++ if (!cPluginChannelscan::GetAdapterFrontend(cDevice::GetDevice(cardnr)->CardIndex(), Adapter, Frontend)) { ++ esyslog("GetAdapterFrontend() failed"); ++ cMenuChannelscan::scanState = ssDeviceFailure; ++ return false; ++ } ++ snprintf(buffer, sizeof(buffer), "/dev/dvb/adapter%d/frontend%d", Adapter, Frontend); ++#else + snprintf(buffer, sizeof(buffer), "/dev/dvb/adapter%d/frontend0", cDevice::GetDevice(cardnr)->CardIndex()); ++#endif fd_frontend = open(buffer, O_RDONLY | O_NONBLOCK); if (fd_frontend <= 0) { -@@ -932,12 +932,12 @@ void cScan::Action() +@@ -932,12 +942,12 @@ void cScan::Action() char *strDate; asprintf(&strDate,"%s", asctime(localtime(&tt))); strDate[strlen(strDate)-1] = 0; diff --git a/multimedia/vdr-plugin-reelchannelscan/pkg-plist b/multimedia/vdr-plugin-reelchannelscan/pkg-plist index e9d33a931ec0..5eb1b947d07f 100644 --- a/multimedia/vdr-plugin-reelchannelscan/pkg-plist +++ b/multimedia/vdr-plugin-reelchannelscan/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-reelchannelscan.so.1.7.22 +lib/vdr/libvdr-reelchannelscan.so.%%APIVERSION%% etc/vdr/plugins/transponders/S0.8W.tpl etc/vdr/plugins/transponders/S10.0E.tpl etc/vdr/plugins/transponders/S100.5E.tpl diff --git a/multimedia/vdr-plugin-remote/Makefile b/multimedia/vdr-plugin-remote/Makefile index c6891da34d97..a56647335518 100644 --- a/multimedia/vdr-plugin-remote/Makefile +++ b/multimedia/vdr-plugin-remote/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-remote PORTVERSION= 0.4.0 -PORTREVISION= 10 +PORTREVISION= 11 CATEGORIES= multimedia MASTER_SITES= http://www.escape-edv.de/endriss/vdr/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} @@ -26,7 +26,7 @@ WRKSRC= ${WRKDIR}/${PLUGIN}-${DISTVERSION} post-patch: post-patch-plugin -post-install: +post-install: post-install-pluginlocales .if !defined(NOPORTDOCS) ${MKDIR} ${DOCSDIR} (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR}) diff --git a/multimedia/vdr-plugin-remote/files/patch-Makefile b/multimedia/vdr-plugin-remote/files/patch-Makefile index 40b6fef3d4de..59b7603187c4 100644 --- a/multimedia/vdr-plugin-remote/files/patch-Makefile +++ b/multimedia/vdr-plugin-remote/files/patch-Makefile @@ -13,6 +13,32 @@ ### The object files (add further files here): OBJS = $(PLUGIN).o ttystatus.o +@@ -81,9 +87,9 @@ $(DEPFILE): Makefile + + ### Internationalization (I18N): + +-ifneq ($(shell grep 'LOCALEDIR' $(VDRDIR)/Makefile),) ++#ifneq ($(shell grep 'LOCALEDIR' $(VDRDIR)/Makefile),) + PODIR = po + LOCALEDIR = $(VDRDIR)/locale + I18Npo = $(wildcard $(PODIR)/*.po) + I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file)))) + I18Ndirs = $(notdir $(foreach file, $(I18Npo), $(basename $(file)))) +@@ -104,10 +110,10 @@ i18n: $(I18Nmo) + mkdir -p $(LOCALEDIR)/$$i/LC_MESSAGES;\ + cp $(PODIR)/$$i.mo $(LOCALEDIR)/$$i/LC_MESSAGES/vdr-$(PLUGIN).mo;\ + done +-else +-OBJS += i18n.o +-i18n: ; +-endif ++#else ++#OBJS += i18n.o ++#i18n: ; ++#endif + + ### Targets: + @@ -126,3 +132,6 @@ dist: clean clean: @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot diff --git a/multimedia/vdr-plugin-remote/pkg-plist b/multimedia/vdr-plugin-remote/pkg-plist index 7a90f49895f4..93c52c2d9e9c 100644 --- a/multimedia/vdr-plugin-remote/pkg-plist +++ b/multimedia/vdr-plugin-remote/pkg-plist @@ -1 +1,7 @@ -lib/vdr/libvdr-remote.so.1.7.22 +lib/vdr/libvdr-remote.so.%%APIVERSION%% +%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-remote.mo +%%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-remote.mo +%%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-remote.mo +%%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-remote.mo +%%NLS%%share/locale/pl_PL/LC_MESSAGES/vdr-remote.mo +%%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-remote.mo diff --git a/multimedia/vdr-plugin-skinenigmang/Makefile b/multimedia/vdr-plugin-skinenigmang/Makefile index 60e68bdee8c5..dba2bd668e04 100644 --- a/multimedia/vdr-plugin-skinenigmang/Makefile +++ b/multimedia/vdr-plugin-skinenigmang/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-skinenigmang PORTVERSION= 0.1.1 -PORTREVISION= 10 +PORTREVISION= 11 CATEGORIES= multimedia MASTER_SITES= http://andreas.vdr-developer.org/enigmang/download/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-skinenigmang/pkg-plist b/multimedia/vdr-plugin-skinenigmang/pkg-plist index 87c425b5acfb..f65b62e669e6 100644 --- a/multimedia/vdr-plugin-skinenigmang/pkg-plist +++ b/multimedia/vdr-plugin-skinenigmang/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-skinenigmang.so.1.7.22 +lib/vdr/libvdr-skinenigmang.so.%%APIVERSION%% etc/vdr/plugins/skinenigmang/HISTORY etc/vdr/plugins/skinenigmang/README etc/vdr/plugins/skinenigmang/flags/deu.xpm diff --git a/multimedia/vdr-plugin-sleeptimer/Makefile b/multimedia/vdr-plugin-sleeptimer/Makefile index fb94d1827cf0..ddcdc887f176 100644 --- a/multimedia/vdr-plugin-sleeptimer/Makefile +++ b/multimedia/vdr-plugin-sleeptimer/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-sleeptimer PORTVERSION= 0.8.2 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/652/ EXTRACT_SUFX= .tgz diff --git a/multimedia/vdr-plugin-sleeptimer/files/patch-Makefile b/multimedia/vdr-plugin-sleeptimer/files/patch-Makefile index 3a230caa2e85..a14f1df9789b 100644 --- a/multimedia/vdr-plugin-sleeptimer/files/patch-Makefile +++ b/multimedia/vdr-plugin-sleeptimer/files/patch-Makefile @@ -1,5 +1,14 @@ --- a/Makefile +++ b/Makefile +@@ -50,7 +50,7 @@ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I + + ### The object files (add further files here): + +-OBJS = $(PLUGIN).o i18n.o ++OBJS = $(PLUGIN).o + + ### Implicit rules: + @@ -110,3 +110,6 @@ dist: clean clean: @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot diff --git a/multimedia/vdr-plugin-sleeptimer/pkg-plist b/multimedia/vdr-plugin-sleeptimer/pkg-plist index 848fa5efdb81..3e93224cecc5 100644 --- a/multimedia/vdr-plugin-sleeptimer/pkg-plist +++ b/multimedia/vdr-plugin-sleeptimer/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-sleeptimer.so.1.7.22 +lib/vdr/libvdr-sleeptimer.so.%%APIVERSION%% %%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-sleeptimer.mo %%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-sleeptimer.mo %%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-sleeptimer.mo diff --git a/multimedia/vdr-plugin-softdevice/Makefile b/multimedia/vdr-plugin-softdevice/Makefile index b30824012fa8..523da6dca425 100644 --- a/multimedia/vdr-plugin-softdevice/Makefile +++ b/multimedia/vdr-plugin-softdevice/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-softdevice PORTVERSION= 0.5.0p20100414 -PORTREVISION= 11 +PORTREVISION= 12 CATEGORIES= multimedia MASTER_SITES= LOCAL MASTER_SITE_SUBDIR= nox/ diff --git a/multimedia/vdr-plugin-softdevice/files/patch-Makefile b/multimedia/vdr-plugin-softdevice/files/patch-Makefile index 757f5db4c5cf..f36147d1d06b 100644 --- a/multimedia/vdr-plugin-softdevice/files/patch-Makefile +++ b/multimedia/vdr-plugin-softdevice/files/patch-Makefile @@ -1,5 +1,14 @@ --- Makefile.orig +++ Makefile +@@ -233,7 +238,7 @@ DEFINES += -DPLUGINLIBDIR='"$(PLUGINLIBD + + TARGETS = libvdr-$(PLUGIN).so + LIBS = $(FFMPEGLIBS) +-OBJS = $(PLUGIN).o utils.o i18n.o video.o mpeg2decoder.o \ ++OBJS = $(PLUGIN).o utils.o video.o mpeg2decoder.o \ + audio.o video-dummy.o \ + setup-softdevice.o setup-softdevice-menu.o \ + setup-softlog.o setup-softlog-menu.o\ @@ -438,3 +438,9 @@ MacVdrClient_obj = video_shm.o video-qua MacVdrClient: $(MacVdrClient_obj) $(CXX) $(LDFLAGS) $(MacVdrClient_obj) -framework Carbon -framework AGL -framework OpenGL -lpthread -o $@ diff --git a/multimedia/vdr-plugin-softdevice/files/patch-i18n.h b/multimedia/vdr-plugin-softdevice/files/patch-i18n.h new file mode 100644 index 000000000000..8f69bd32edde --- /dev/null +++ b/multimedia/vdr-plugin-softdevice/files/patch-i18n.h @@ -0,0 +1,13 @@ +--- i18n.h.orig ++++ i18n.h +@@ -9,8 +9,10 @@ + #ifndef _I18N__H + #define _I18N__H + ++#if (APIVERSNUM < 10507) + #include + + extern const tI18nPhrase Phrases[]; ++#endif + + #endif //_I18N__H diff --git a/multimedia/vdr-plugin-softdevice/files/patch-softdevice.c b/multimedia/vdr-plugin-softdevice/files/patch-softdevice.c new file mode 100644 index 000000000000..4fb9aad3f585 --- /dev/null +++ b/multimedia/vdr-plugin-softdevice/files/patch-softdevice.c @@ -0,0 +1,12 @@ +--- softdevice.c.orig ++++ softdevice.c +@@ -1254,7 +1254,9 @@ bool cPluginSoftDevice::Service(const ch + bool cPluginSoftDevice::Start(void) + { + // Start any background activities the plugin shall perform. ++#if (APIVERSNUM < 10507) + RegisterI18n(Phrases); ++#endif + return true; + } + diff --git a/multimedia/vdr-plugin-softdevice/pkg-plist b/multimedia/vdr-plugin-softdevice/pkg-plist index 9c087e25bfe6..573b90fb2f76 100644 --- a/multimedia/vdr-plugin-softdevice/pkg-plist +++ b/multimedia/vdr-plugin-softdevice/pkg-plist @@ -1,7 +1,7 @@ bin/ShmClient -lib/vdr/libvdr-softdevice.so.1.7.22 -lib/vdr/libsoftdevice-xv.so.1.7.22 -lib/vdr/libsoftdevice-shm.so.1.7.22 +lib/vdr/libvdr-softdevice.so.%%APIVERSION%% +lib/vdr/libsoftdevice-xv.so.%%APIVERSION%% +lib/vdr/libsoftdevice-shm.so.%%APIVERSION%% %%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-softdevice.mo %%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-softdevice.mo %%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-softdevice.mo diff --git a/multimedia/vdr-plugin-streamdev/Makefile b/multimedia/vdr-plugin-streamdev/Makefile index cee2d5d633cd..7933ca7117b6 100644 --- a/multimedia/vdr-plugin-streamdev/Makefile +++ b/multimedia/vdr-plugin-streamdev/Makefile @@ -6,25 +6,23 @@ # PORTNAME= vdr-plugin-streamdev -PORTVERSION= 0.5.1 -PORTREVISION= 6 +PORTVERSION= 0.5.1p20120311 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/497/:release \ LOCAL:snapshot MASTER_SITE_SUBDIR= nox/:snapshot -DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} -DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:release +DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:snapshot MAINTAINER= nox@FreeBSD.org COMMENT= Video Disk Recorder - stream device plugin RUN_DEPENDS+= bash:${PORTSDIR}/shells/bash -EXTRACT_SUFX= .tgz +USE_BZIP2= yes PORTDOCS= COPYING README HAVE_CONFIGURE= yes MAKE_JOBS_UNSAFE= yes -WRKSRC= ${WRKDIR}/${PLUGIN}-${PORTVERSION} +WRKSRC= ${WRKDIR}/${PORTNAME} VDR_PLUGIN_MAKEFILES= ${WRKSRC}/client/Makefile \ ${WRKSRC}/server/Makefile diff --git a/multimedia/vdr-plugin-streamdev/distinfo b/multimedia/vdr-plugin-streamdev/distinfo index 74a7fbebc020..a13c8b7292a9 100644 --- a/multimedia/vdr-plugin-streamdev/distinfo +++ b/multimedia/vdr-plugin-streamdev/distinfo @@ -1,2 +1,2 @@ -SHA256 (vdr/vdr-streamdev-0.5.1.tgz) = 254d1648251cd7265a905e6b7580c8a9f992a3225b4e4b4087582cb9c56e6763 -SIZE (vdr/vdr-streamdev-0.5.1.tgz) = 178999 +SHA256 (vdr/vdr-plugin-streamdev-0.5.1p20120311.tar.bz2) = 519bc2295b7e17504c25beadc4715853bdc095d1e112b0416e74bd083d895122 +SIZE (vdr/vdr-plugin-streamdev-0.5.1p20120311.tar.bz2) = 148996 diff --git a/multimedia/vdr-plugin-streamdev/pkg-plist b/multimedia/vdr-plugin-streamdev/pkg-plist index e471b6882851..5abf1428aa4b 100644 --- a/multimedia/vdr-plugin-streamdev/pkg-plist +++ b/multimedia/vdr-plugin-streamdev/pkg-plist @@ -1,5 +1,5 @@ -lib/vdr/libvdr-streamdev-client.so.1.7.22 -lib/vdr/libvdr-streamdev-server.so.1.7.22 +lib/vdr/libvdr-streamdev-client.so.%%APIVERSION%% +lib/vdr/libvdr-streamdev-server.so.%%APIVERSION%% @unexec if cmp -s %D/etc/vdr/plugins/streamdev-server/externremux.sh.sample %D/etc/vdr/plugins/streamdev-server/externremux.sh; then rm -f %D/etc/vdr/plugins/streamdev-server/externremux.sh; fi etc/vdr/plugins/streamdev-server/externremux.sh.sample @exec if [ ! -f %D/etc/vdr/plugins/streamdev-server/externremux.sh ] ; then cp -p %D/%F %B/externremux.sh; fi @@ -9,6 +9,8 @@ etc/vdr/plugins/streamdev-server/streamdevhosts.conf.sample @dirrmtry etc/vdr/plugins/streamdev-server %%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-streamdev-client.mo %%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-streamdev-server.mo +%%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-streamdev-client.mo +%%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-streamdev-server.mo %%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-streamdev-client.mo %%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-streamdev-server.mo %%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-streamdev-client.mo diff --git a/multimedia/vdr-plugin-ttxtsubs/Makefile b/multimedia/vdr-plugin-ttxtsubs/Makefile index b57eec84f2db..fb99d6345783 100644 --- a/multimedia/vdr-plugin-ttxtsubs/Makefile +++ b/multimedia/vdr-plugin-ttxtsubs/Makefile @@ -7,6 +7,7 @@ PORTNAME= vdr-plugin-ttxtsubs PORTVERSION= 0.2.4 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/725/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-ttxtsubs/pkg-plist b/multimedia/vdr-plugin-ttxtsubs/pkg-plist index e9c7ba5779ec..797f748b0e2b 100644 --- a/multimedia/vdr-plugin-ttxtsubs/pkg-plist +++ b/multimedia/vdr-plugin-ttxtsubs/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-ttxtsubs.so.1.7.22 +lib/vdr/libvdr-ttxtsubs.so.%%APIVERSION%% %%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-ttxtsubs.mo %%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-ttxtsubs.mo %%NLS%%share/locale/uk_UA/LC_MESSAGES/vdr-ttxtsubs.mo diff --git a/multimedia/vdr-plugin-upnp/Makefile b/multimedia/vdr-plugin-upnp/Makefile index 9dc56e37c6d3..01a5efd291c1 100644 --- a/multimedia/vdr-plugin-upnp/Makefile +++ b/multimedia/vdr-plugin-upnp/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-upnp PORTVERSION= 0.0.2a2 -PORTREVISION= 13 +PORTREVISION= 14 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/177/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION:S/a/-alpha/}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-upnp/pkg-plist b/multimedia/vdr-plugin-upnp/pkg-plist index b75ac0f41bfe..5a0e25239334 100644 --- a/multimedia/vdr-plugin-upnp/pkg-plist +++ b/multimedia/vdr-plugin-upnp/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-upnp.so.1.7.22 +lib/vdr/libvdr-upnp.so.%%APIVERSION%% etc/vdr/plugins/upnp/http/icons/upnpIconLrg.jpeg etc/vdr/plugins/upnp/http/icons/upnpIconLrg.png etc/vdr/plugins/upnp/http/icons/upnpIconSm.jpeg diff --git a/multimedia/vdr-plugin-vdrmanager/Makefile b/multimedia/vdr-plugin-vdrmanager/Makefile index d2bc65af3158..cb219939a560 100644 --- a/multimedia/vdr-plugin-vdrmanager/Makefile +++ b/multimedia/vdr-plugin-vdrmanager/Makefile @@ -7,6 +7,7 @@ PORTNAME= vdr-plugin-vdrmanager PORTVERSION= 0.6 +PORTREVISION= 1 CATEGORIES= multimedia MASTER_SITES= http://projects.vdr-developer.org/attachments/download/828/ DISTNAME= ${PORTNAME:S/-plugin//}-${PORTVERSION} diff --git a/multimedia/vdr-plugin-vdrmanager/pkg-plist b/multimedia/vdr-plugin-vdrmanager/pkg-plist index 8f584d1c133f..6bc9d2f4b7a1 100644 --- a/multimedia/vdr-plugin-vdrmanager/pkg-plist +++ b/multimedia/vdr-plugin-vdrmanager/pkg-plist @@ -1,2 +1,2 @@ -lib/vdr/libvdr-vdrmanager.so.1.7.22 +lib/vdr/libvdr-vdrmanager.so.%%APIVERSION%% etc/vdr/plugins/plugin.vdrmanager.conf.sample diff --git a/multimedia/vdr-plugin-vnsiserver/Makefile b/multimedia/vdr-plugin-vnsiserver/Makefile index 30a11bd7eb2b..66edcb176668 100644 --- a/multimedia/vdr-plugin-vnsiserver/Makefile +++ b/multimedia/vdr-plugin-vnsiserver/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-vnsiserver PORTVERSION= 0.0.2s20100808.0952 -PORTREVISION= 10 +PORTREVISION= 11 CATEGORIES= multimedia MASTER_SITES= http://ppa.launchpad.net/yavdr/testing-vdr/ubuntu/pool/main/v/vdr-plugin-vnsiserver/ \ LOCAL/nox/ diff --git a/multimedia/vdr-plugin-vnsiserver/pkg-plist b/multimedia/vdr-plugin-vnsiserver/pkg-plist index ec97f043a960..7dacf63d6196 100644 --- a/multimedia/vdr-plugin-vnsiserver/pkg-plist +++ b/multimedia/vdr-plugin-vnsiserver/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-vnsiserver.so.1.7.22 +lib/vdr/libvdr-vnsiserver.so.%%APIVERSION%% @unexec if cmp -s %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf.sample %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf; fi etc/vdr/plugins/vnsiserver/allowed_hosts.conf.sample @exec if [ ! -f %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf ] ; then cp -p %D/%F %B/allowed_hosts.conf; fi diff --git a/multimedia/vdr-plugin-wirbelscan/Makefile b/multimedia/vdr-plugin-wirbelscan/Makefile index c725f1261a62..1abc99444c5e 100644 --- a/multimedia/vdr-plugin-wirbelscan/Makefile +++ b/multimedia/vdr-plugin-wirbelscan/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-wirbelscan PORTVERSION= 0.0.7 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= multimedia MASTER_SITES= http://wirbel.htpc-forum.de/wirbelscan/ DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} diff --git a/multimedia/vdr-plugin-wirbelscan/pkg-plist b/multimedia/vdr-plugin-wirbelscan/pkg-plist index e4df8245d8a5..6613e8296822 100644 --- a/multimedia/vdr-plugin-wirbelscan/pkg-plist +++ b/multimedia/vdr-plugin-wirbelscan/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-wirbelscan.so.1.7.22 +lib/vdr/libvdr-wirbelscan.so.%%APIVERSION%% %%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-wirbelscan.mo %%NLS%%share/locale/sl_SI/LC_MESSAGES/vdr-wirbelscan.mo %%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-wirbelscan.mo diff --git a/multimedia/vdr-plugin-xineliboutput/Makefile b/multimedia/vdr-plugin-xineliboutput/Makefile index 820dae27dffd..efb880565331 100644 --- a/multimedia/vdr-plugin-xineliboutput/Makefile +++ b/multimedia/vdr-plugin-xineliboutput/Makefile @@ -6,8 +6,7 @@ # PORTNAME= vdr-plugin-xineliboutput -PORTVERSION= 1.0.90s20111129.1002 -PORTREVISION= 3 +PORTVERSION= 1.0.90s20120403.2257 CATEGORIES= multimedia MASTER_SITES= SF:release \ LOCAL:snapshot @@ -50,7 +49,7 @@ CONFIGURE_OPTS+= --disable-libextractor .if defined(WITH_LIBBLURAY) CONFIGURE_OPTS+= --enable-libbluray -LIB_DEPENDS+= bluray.2:${PORTSDIR}/multimedia/libbluray +LIB_DEPENDS+= bluray:${PORTSDIR}/multimedia/libbluray .else CONFIGURE_OPTS+= --disable-libbluray .endif diff --git a/multimedia/vdr-plugin-xineliboutput/distinfo b/multimedia/vdr-plugin-xineliboutput/distinfo index ea111ecd8b79..57443c3e73f4 100644 --- a/multimedia/vdr-plugin-xineliboutput/distinfo +++ b/multimedia/vdr-plugin-xineliboutput/distinfo @@ -1,2 +1,2 @@ -SHA256 (vdr/vdr-plugin-xineliboutput_1.0.90+cvs20111129.1002.tar.bz2) = ce659755ef526f333b565dde70b261c22ad604d59303d5a0c54666101b014d4c -SIZE (vdr/vdr-plugin-xineliboutput_1.0.90+cvs20111129.1002.tar.bz2) = 371781 +SHA256 (vdr/vdr-plugin-xineliboutput_1.0.90+cvs20120403.2257.tar.bz2) = 585d093bc12963d42322be29ccb6800a68f818569311a1f3198f7a0c20a296d3 +SIZE (vdr/vdr-plugin-xineliboutput_1.0.90+cvs20120403.2257.tar.bz2) = 376634 diff --git a/multimedia/vdr-plugin-xineliboutput/files/patch-configure b/multimedia/vdr-plugin-xineliboutput/files/patch-configure index 5cd53664b9b4..a3be2592e1d6 100644 --- a/multimedia/vdr-plugin-xineliboutput/files/patch-configure +++ b/multimedia/vdr-plugin-xineliboutput/files/patch-configure @@ -1,6 +1,6 @@ --- a/configure +++ a/configure -@@ -350,11 +350,14 @@ test_pkgconfig +@@ -349,11 +349,14 @@ test_pkgconfig [ $debug = yes ] && \ test_library X11 do_error "none.h" "-lnolib" @@ -20,7 +20,7 @@ if enabled libxine; then -@@ -366,24 +369,40 @@ if enabled libxine; then +@@ -365,24 +368,40 @@ if enabled libxine; then fi log " $XINEPLUGINDIR" @@ -41,7 +41,7 @@ - test_library X11 xshape "X11/extensions/shape.h" "-lXext" "XShapeQueryExtension(0,0,0)" - test_library X11 xdpms "X11/extensions/dpms.h" "-lXext" "DPMSDisable(0)" - test_library X11 xinerama "X11/extensions/Xinerama.h" "-lXinerama" "XineramaQueryScreens(0,0)" -- test_library X11 opengl "GL/glx.h" "-lGL -lGLU -lglut" "glXQueryVersion(0,0,0)" +- test_library X11 opengl "GL/glx.h" "-lGL -lGLU" "glXQueryVersion(0,0,0)" - test_library none vdpau "vdpau/vdpau_x11.h" "-lvdpau" "vdp_device_create_x11(0,0,0,0)" +# test_library X11 xext "X11/extensions/Xext.h" "-lXext" "" + test_library X11 xext "X11/extensions/Xext.h" "-lXext" "" "-I${LOCALBASE}/include -L${LOCALBASE}/lib" @@ -55,8 +55,8 @@ + test_library X11 xdpms "X11/extensions/dpms.h" "-lXext" "DPMSDisable(0)" "-I${LOCALBASE}/include -L${LOCALBASE}/lib" +# test_library X11 xinerama "X11/extensions/Xinerama.h" "-lXinerama" "XineramaQueryScreens(0,0)" + test_library X11 xinerama "X11/extensions/Xinerama.h" "-lXinerama" "XineramaQueryScreens(0,0)" "-I${LOCALBASE}/include -L${LOCALBASE}/lib" -+# test_library X11 opengl "GL/glx.h" "-lGL -lGLU -lglut" "glXQueryVersion(0,0,0)" -+ test_library X11 opengl "GL/glx.h" "-lGL -lGLU -lglut" "glXQueryVersion(0,0,0)" "-I${LOCALBASE}/include -L${LOCALBASE}/lib" ++# test_library X11 opengl "GL/glx.h" "-lGL -lGLU" "glXQueryVersion(0,0,0)" ++ test_library X11 opengl "GL/glx.h" "-lGL -lGLU" "glXQueryVersion(0,0,0)" "-I${LOCALBASE}/include -L${LOCALBASE}/lib" +# test_library none vdpau "vdpau/vdpau_x11.h" "-lvdpau" "vdp_device_create_x11(0,0,0,0)" + test_library none vdpau "vdpau/vdpau_x11.h" "-lvdpau" "vdp_device_create_x11(0,0,0,0)" "-I${LOCALBASE}/include -L${LOCALBASE}/lib" +# test_library X11 dbus-glib-1 \ diff --git a/multimedia/vdr-plugin-xineliboutput/files/patch-xine_input_vdr.c b/multimedia/vdr-plugin-xineliboutput/files/patch-xine_input_vdr.c deleted file mode 100644 index bc1410a041ac..000000000000 --- a/multimedia/vdr-plugin-xineliboutput/files/patch-xine_input_vdr.c +++ /dev/null @@ -1,11 +0,0 @@ ---- a/xine_input_vdr.c -+++ b/xine_input_vdr.c -@@ -5526,7 +5526,7 @@ static int connect_tcp_data_stream(vdr_i - LOGERR("Data stream write error (TCP)"); - } else if( XIO_READY != io_select_rd(fd_data)) { - LOGERR("Data stream poll failed (TCP)"); -- } else if((n=read(fd_data, tmpbuf, sizeof(tmpbuf))) <= 0) { -+ } else if((n=read(fd_data, tmpbuf, sizeof("DATA\r\n") - 1)) <= 0) { - LOGERR("Data stream read failed (TCP)"); - } else if(n<6 || strncmp(tmpbuf, "DATA\r\n", 6)) { - tmpbuf[n] = 0; diff --git a/multimedia/vdr-plugin-xineliboutput/files/patch-xine_post_audiochannel.c b/multimedia/vdr-plugin-xineliboutput/files/patch-xine_post_audiochannel.c deleted file mode 100644 index 5dd2611910bc..000000000000 --- a/multimedia/vdr-plugin-xineliboutput/files/patch-xine_post_audiochannel.c +++ /dev/null @@ -1,47 +0,0 @@ ---- vdr-xineliboutput/xine_post_audiochannel.c.orig -+++ vdr-xineliboutput/xine_post_audiochannel.c -@@ -72,7 +72,7 @@ typedef struct audioch_post_plugin_s - /* - * Port functions - */ --#if XINE_VERSION_CODE < 10200 -+#if 1 // XINE_VERSION_CODE < 10200 - static int audioch_port_open(xine_audio_port_t *port_gen, xine_stream_t *stream, - uint32_t bits, uint32_t rate, int mode) - #else -@@ -87,7 +87,7 @@ static int audioch_port_open(xine_audio_ - _x_post_inc_usage(port); - - port->stream = stream; --#if XINE_VERSION_CODE < 10200 -+#if 1 // XINE_VERSION_CODE < 10200 - port->bits = bits; - port->rate = rate; - port->mode = mode; -@@ -114,7 +114,7 @@ static void audioch_port_put_buffer (xin - int i; - - if(this->channels == 2) { --#if XINE_VERSION_CODE < 10200 -+#if 1 // XINE_VERSION_CODE < 10200 - int step = buf->format.bits / 8; - #else - int step = sample_bytes_table[buf->format.sample_format]; -@@ -124,7 +124,7 @@ static void audioch_port_put_buffer (xin - newbuf->vpts = buf->vpts; - newbuf->frame_header_count = buf->frame_header_count; - newbuf->first_access_unit = buf->first_access_unit; --#if XINE_VERSION_CODE < 10200 -+#if 1 // XINE_VERSION_CODE < 10200 - newbuf->format.bits = buf->format.bits; - newbuf->format.rate = buf->format.rate; - newbuf->format.mode = buf->format.mode; -@@ -258,7 +258,7 @@ static post_plugin_t *audioch_open_plugi - input_param->name = "parameters"; - input_param->type = XINE_POST_DATA_PARAMETERS; - input_param->data = &post_api; --#if XINE_VERSION_CODE >= 10102 -+#if 1 // XINE_VERSION_CODE >= 10102 - xine_list_push_back(this->post_plugin.input, input_param); - #else - xine_list_append_content(this->post_plugin.input, input_param); diff --git a/multimedia/vdr-plugin-xineliboutput/pkg-plist b/multimedia/vdr-plugin-xineliboutput/pkg-plist index 8d32ab7403df..95844e6b909b 100644 --- a/multimedia/vdr-plugin-xineliboutput/pkg-plist +++ b/multimedia/vdr-plugin-xineliboutput/pkg-plist @@ -4,7 +4,7 @@ lib/xine/plugins/2.1/xineplug_inp_xvdr.so lib/xine/plugins/2.1/post/xineplug_post_autocrop.so lib/xine/plugins/2.1/post/xineplug_post_swscale.so lib/xine/plugins/2.1/post/xineplug_post_audiochannel.so -lib/vdr/libvdr-xineliboutput.so.1.7.22 +lib/vdr/libvdr-xineliboutput.so.%%APIVERSION%% lib/vdr/libxineliboutput-sxfe.so.1.0.90-cvs @unexec if cmp -s %D/etc/vdr/plugins/xineliboutput/allowed_hosts.conf.sample %D/etc/vdr/plugins/xineliboutput/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/xineliboutput/allowed_hosts.conf; fi etc/vdr/plugins/xineliboutput/allowed_hosts.conf.sample diff --git a/multimedia/vdr-plugin-xvdr/Makefile b/multimedia/vdr-plugin-xvdr/Makefile index 3008b01167f9..a9ce53f72148 100644 --- a/multimedia/vdr-plugin-xvdr/Makefile +++ b/multimedia/vdr-plugin-xvdr/Makefile @@ -7,7 +7,7 @@ PORTNAME= vdr-plugin-xvdr PORTVERSION= 0.9.5 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= multimedia MASTER_SITES= LOCAL/nox/ DISTNAME= pipelka-${PORTNAME}-xvdr-${PORTVERSION}-0-g${GITHASH} diff --git a/multimedia/vdr-plugin-xvdr/files/patch-rofafor b/multimedia/vdr-plugin-xvdr/files/patch-rofafor new file mode 100644 index 000000000000..059881585f56 --- /dev/null +++ b/multimedia/vdr-plugin-xvdr/files/patch-rofafor @@ -0,0 +1,84 @@ +diff --git a/src/live/livepatfilter.c b/src/live/livepatfilter.c +index e811c8c..f1b94fd 100644 +--- a/src/live/livepatfilter.c ++++ b/src/live/livepatfilter.c +@@ -447,7 +447,7 @@ void cLivePatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Le + } + } + +- m_Streamer->m_Receiver = new cLiveReceiver(m_Streamer, m_Channel->GetChannelID(), m_Streamer->m_Priority, m_Streamer->m_Pids); ++ m_Streamer->m_Receiver = new cLiveReceiver(m_Streamer, m_Channel, m_Streamer->m_Priority, m_Streamer->m_Pids); + m_Streamer->m_Device->AttachReceiver(m_Streamer->m_Receiver); + INFOLOG("Currently unknown new streams found, requesting stream change"); + m_Streamer->RequestStreamChange(); +diff --git a/src/live/livereceiver.c b/src/live/livereceiver.c +index 34f5ba8..528f65a 100644 +--- a/src/live/livereceiver.c ++++ b/src/live/livereceiver.c +@@ -27,10 +27,12 @@ + #include "livereceiver.h" + #include "livestreamer.h" + +-cLiveReceiver::cLiveReceiver(cLiveStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids) +- : cReceiver(ChannelID, Priority, 0, Pids) ++cLiveReceiver::cLiveReceiver(cLiveStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids) ++ : cReceiver(Channel, Priority) + , m_Streamer(Streamer) + { ++ AddPid(0); ++ AddPids(Pids); + DEBUGLOG("Starting live receiver"); + } + +diff --git a/src/live/livereceiver.h b/src/live/livereceiver.h +index 8d23522..2ccd8bf 100644 +--- a/src/live/livereceiver.h ++++ b/src/live/livereceiver.h +@@ -42,7 +42,7 @@ protected: + virtual void Receive(uchar *Data, int Length); + + public: +- cLiveReceiver(cLiveStreamer *Streamer, tChannelID ChannelID, int Priority, const int *Pids); ++ cLiveReceiver(cLiveStreamer *Streamer, const cChannel *Channel, int Priority, const int *Pids); + virtual ~cLiveReceiver(); + }; + +diff --git a/src/live/livestreamer.c b/src/live/livestreamer.c +index a2d6826..6bafc02 100644 +--- a/src/live/livestreamer.c ++++ b/src/live/livestreamer.c +@@ -406,7 +406,7 @@ bool cLiveStreamer::StreamChannel(const cChannel *channel, int priority, cxSocke + if (m_NumStreams > 0 && m_Socket) + { + DEBUGLOG("Creating new live Receiver"); +- m_Receiver = new cLiveReceiver(this, m_Channel->GetChannelID(), m_Priority, m_Pids); ++ m_Receiver = new cLiveReceiver(this, m_Channel, m_Priority, m_Pids); + m_PatFilter = new cLivePatFilter(this, m_Channel); + m_Device->AttachReceiver(m_Receiver); + m_Device->AttachFilter(m_PatFilter); +diff --git a/src/xvdr/xvdrclient.c b/src/xvdr/xvdrclient.c +index cea1af2..931ea61 100644 +--- a/src/xvdr/xvdrclient.c ++++ b/src/xvdr/xvdrclient.c +@@ -1572,7 +1572,7 @@ bool cXVDRClient::processRECORDINGS_GetList() /* OPCODE 102 */ + } + else + { +- recordingStart = recording->start; ++ recordingStart = recording->Start(); + } + } + DEBUGLOG("GRI: RC: recordingStart=%lu recordingDuration=%i", recordingStart, recordingDuration); +@@ -1584,10 +1584,10 @@ bool cXVDRClient::processRECORDINGS_GetList() /* OPCODE 102 */ + m_resp->add_U32(recordingDuration); + + // priority +- m_resp->add_U32(recording->priority); ++ m_resp->add_U32(recording->Priority()); + + // lifetime +- m_resp->add_U32(recording->lifetime); ++ m_resp->add_U32(recording->Lifetime()); + + // channel_name + m_resp->add_String(recording->Info()->ChannelName() ? m_toUTF8.Convert(recording->Info()->ChannelName()) : ""); diff --git a/multimedia/vdr-plugin-xvdr/pkg-plist b/multimedia/vdr-plugin-xvdr/pkg-plist index a156e6b8a3be..b159314cf7bb 100644 --- a/multimedia/vdr-plugin-xvdr/pkg-plist +++ b/multimedia/vdr-plugin-xvdr/pkg-plist @@ -1,4 +1,4 @@ -lib/vdr/libvdr-xvdr.so.1.7.22 +lib/vdr/libvdr-xvdr.so.%%APIVERSION%% @unexec if cmp -s %D/etc/vdr/plugins/xvdr/allowed_hosts.conf.sample %D/etc/vdr/plugins/xvdr/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/xvdr/allowed_hosts.conf; fi etc/vdr/plugins/xvdr/allowed_hosts.conf.sample @exec if [ ! -f %D/etc/vdr/plugins/xvdr/allowed_hosts.conf ] ; then cp -p %D/%F %B/allowed_hosts.conf; fi diff --git a/multimedia/vdr-plugins/Makefile b/multimedia/vdr-plugins/Makefile index 52af66308ec9..3711e0b22bfb 100644 --- a/multimedia/vdr-plugins/Makefile +++ b/multimedia/vdr-plugins/Makefile @@ -6,8 +6,7 @@ # PORTNAME= vdr-plugins -PORTVERSION= 1.7.22 -PORTREVISION= 2 +PORTVERSION= 1.7.27 CATEGORIES= multimedia MASTER_SITES= # none DISTFILES= # none diff --git a/multimedia/vdr/Makefile b/multimedia/vdr/Makefile index 19d15af4c04b..af6c5aeb175a 100644 --- a/multimedia/vdr/Makefile +++ b/multimedia/vdr/Makefile @@ -6,10 +6,14 @@ # PORTNAME= vdr -PORTVERSION= 1.7.22 +PORTVERSION= 1.7.27 CATEGORIES= multimedia MASTER_SITES= ftp://ftp.tvdr.de/vdr/Developer/ +PATCH_SITES= http://www.udo-richter.de/vdr/files/ +PATCHFILES= vdr-1.7.24-s2apiwrapper-0.8.diff +PATCH_DIST_STRIP= -p1 + MAINTAINER= nox@FreeBSD.org COMMENT= Video Disk Recorder - development version @@ -19,7 +23,8 @@ BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fon RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig OPTIONS= IPTVPATCH "Stops EIT scans on IPTV channels" On \ - TTXPATCH "Support patches for teletext subtitle plugin" On + TTXPATCH "Support patches for teletext subtitle plugin" On \ + DVBPATCH "DVB audio patch for some countries" Off DIST_SUBDIR= vdr USE_BZIP2= yes @@ -36,11 +41,13 @@ CONFDIR= $(ETCDIR) USE_CSTD= gnu89 MAKE_ARGS+= CC=${CC} MAKE_ARGS+= CXX=${CXX} -MAKE_ARGS+= DVBDIR=${LOCALBASE}/include MAKE_ARGS+= VDR_USER=${VDR_USER} MAKE_ARGS+= CONFDIR=$(CONFDIR) MAKE_ARGS+= OSTYPE=FreeBSD MAKE_ARGS+= LIRC_DEVICE=/var/run/lirc/lircd +MAKE_ARGS+= LIBDIR=../../lib +MAKE_ARGS+= VDRDIR=${WRKSRC} +MAKE_ARGS+= TMPDIR=/tmp ALL_TARGET= all plugins VIDEODIR= /video @@ -60,6 +67,9 @@ EXTRA_PATCHES+= ${FILESDIR}/vdr-1.7.15-disable_ca_updates.patch .if defined(WITH_IPTVPATCH) EXTRA_PATCHES+= ${FILESDIR}/vdr-1.7.15-disable_eitscan.patch .endif +.if defined(WITH_DVBPATCH) +EXTRA_PATCHES+= ${FILESDIR}/vdr-1.7.27-pat.diff +.endif .if defined(WITH_TTXPATCH) PLIST_SUB+= TTXPATCH="" @@ -79,6 +89,8 @@ post-patch: @${REINPLACE_CMD} '/^MAKEDEP.*-MM/s/-MG[[:space:]]*$$/# -MG/' \ ${WRKSRC}/Makefile ${WRKSRC}/libsi/Makefile \ ${WRKSRC}/PLUGINS/src/*/Makefile + @[ ! -f ${WRKSRC}/s2apiwrapper.c ] || \ + ${REINPLACE_CMD} 's/__u32/uint32_t/' ${WRKSRC}/s2apiwrapper.c .if defined(WITH_TTXPATCH) @${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.21-ttxtsubs.patch-1 @${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.21-ttxtsubs.patch-2 @@ -88,8 +100,6 @@ post-patch: @${REINPLACE_CMD} -e 's|%%CONFDIR%%|${CONFDIR}|' ${WRKSRC}/vdr.1 # We don't support this yet: @${RM} -r ${WRKSRC}/PLUGINS/src/dvbhddevice -# upstream bug: - @${CP} ${WRKSRC}/svdrpsend.pl ${WRKSRC}/svdrpsend post-install: .if !defined(WITHOUT_NLS) diff --git a/multimedia/vdr/Makefile.plugins b/multimedia/vdr/Makefile.plugins index 50ce7bc76f6b..65152561d42a 100644 --- a/multimedia/vdr/Makefile.plugins +++ b/multimedia/vdr/Makefile.plugins @@ -1,12 +1,13 @@ # this is to be included by vdr plugin ports # -# $FreeBSD: /tmp/pcvs/ports/multimedia/vdr/Makefile.plugins,v 1.2 2011-06-25 19:02:04 nox Exp $ +# $FreeBSD: /tmp/pcvs/ports/multimedia/vdr/Makefile.plugins,v 1.3 2012-04-21 14:10:52 nox Exp $ BUILD_DEPENDS+= ${LOCALBASE}/include/linux/dvb/frontend.h:${PORTSDIR}/multimedia/v4l_compat BUILD_DEPENDS+= vdr:${PORTSDIR}/multimedia/vdr RUN_DEPENDS+= vdr:${PORTSDIR}/multimedia/vdr +APIVERSION= 1.7.27 DIST_SUBDIR= vdr PATCH_SUBDIR= vdr USE_GMAKE= yes @@ -28,6 +29,7 @@ VDR_USER= vdr VDR_GROUP= vdr PLIST_SUB= VDR_USER=${VDR_USER} PLIST_SUB+= VDR_GROUP=${VDR_GROUP} +PLIST_SUB+= APIVERSION=${APIVERSION} .if !defined(WITHOUT_NLS) PLIST_SUB+= NLS="" diff --git a/multimedia/vdr/distinfo b/multimedia/vdr/distinfo index da4eaa4d8932..e829026e8d76 100644 --- a/multimedia/vdr/distinfo +++ b/multimedia/vdr/distinfo @@ -1,2 +1,4 @@ -SHA256 (vdr/vdr-1.7.22.tar.bz2) = 73c36058400bc86b8b5aaaf5de0989551e4e6fc052157bebd180bfac4af7f628 -SIZE (vdr/vdr-1.7.22.tar.bz2) = 757800 +SHA256 (vdr/vdr-1.7.27.tar.bz2) = d948841535b917ab6eb31582d6d40bc281ff6a751988e5bfc1b097567e7ca264 +SIZE (vdr/vdr-1.7.27.tar.bz2) = 767714 +SHA256 (vdr/vdr-1.7.24-s2apiwrapper-0.8.diff) = 2d8b83c01c769c05bcc1a27889f9eb7223aea4e74b66e67b876c52e7fd0f296a +SIZE (vdr/vdr-1.7.24-s2apiwrapper-0.8.diff) = 19788 diff --git a/multimedia/vdr/files/patch-channels.c b/multimedia/vdr/files/patch-channels.c new file mode 100644 index 000000000000..b98a445c37b5 --- /dev/null +++ b/multimedia/vdr/files/patch-channels.c @@ -0,0 +1,12 @@ +diff -pruN vdr-1.7.27-orig/channels.c vdr-1.7.27/channels.c +--- channels.c ++++ channels.c +@@ -955,7 +955,7 @@ int cChannels::MaxShortChannelNameLength + if (!maxShortChannelNameLength) { + for (cChannel *channel = First(); channel; channel = Next(channel)) { + if (!channel->GroupSep()) +- maxShortChannelNameLength = max(Utf8StrLen(channel->ShortName()), maxShortChannelNameLength); ++ maxShortChannelNameLength = max(Utf8StrLen(channel->ShortName(true)), maxShortChannelNameLength); + } + } + return maxShortChannelNameLength; diff --git a/multimedia/vdr/files/patch-clang b/multimedia/vdr/files/patch-clang deleted file mode 100644 index 1691aedbdcd6..000000000000 --- a/multimedia/vdr/files/patch-clang +++ /dev/null @@ -1,11 +0,0 @@ ---- config.h.orig -+++ config.h -@@ -103,7 +103,7 @@ public: - if (!isempty(s)) { - T *l = new T; - if (l->Parse(s)) -- Add(l); -+ this->Add(l); - else { - esyslog("ERROR: error in %s, line %d", fileName, line); - delete l; diff --git a/multimedia/vdr/files/patch-dvbdevice.c b/multimedia/vdr/files/patch-dvbdevice.c index 964571ac9d0f..dfc493d52efd 100644 --- a/multimedia/vdr/files/patch-dvbdevice.c +++ b/multimedia/vdr/files/patch-dvbdevice.c @@ -8,20 +8,3 @@ #include "dvbdevice.h" #include #include -@@ -800,10 +801,13 @@ bool cDvbDevice::Initialize(void) - NextCardIndex(1); // skips this one - } - } -- else if (Frontend == 0) -- goto LastAdapter; -- else -+ else { -+ if (Checked >= MAXDVBDEVICES || Adapter >= MAXDVBDEVICES) -+ goto LastAdapter; -+ if (Frontend == 0) -+ NextCardIndex(1); // skips this one - goto NextAdapter; -+ } - } - NextAdapter: ; - } diff --git a/multimedia/vdr/files/patch-dvbdevice.h b/multimedia/vdr/files/patch-dvbdevice.h index 8867a48b4cbe..6f8297393951 100644 --- a/multimedia/vdr/files/patch-dvbdevice.h +++ b/multimedia/vdr/files/patch-dvbdevice.h @@ -1,11 +1,11 @@ --- dvbdevice.h.orig +++ dvbdevice.h -@@ -19,7 +19,7 @@ - #error VDR requires Linux DVB driver API version 5.0 or higher! +@@ -18,7 +18,7 @@ + #error VDR requires Linux DVB driver API version 5.3 or higher! #endif -#define MAXDVBDEVICES 8 +#define MAXDVBDEVICES 63 + #define MAXDELIVERYSYSTEMS 8 #define DEV_VIDEO "/dev/video" - #define DEV_DVB_ADAPTER "/dev/dvb/adapter" diff --git a/multimedia/vdr/files/patch-eitscan.c b/multimedia/vdr/files/patch-eitscan.c new file mode 100644 index 000000000000..af276b6a2f14 --- /dev/null +++ b/multimedia/vdr/files/patch-eitscan.c @@ -0,0 +1,11 @@ +--- eitscan.c.orig ++++ eitscan.c +@@ -148,7 +148,7 @@ void cEITScanner::Process(void) + if (Channel) { + if (!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= CA_ENCRYPTED_MIN) { + if (Device->ProvidesTransponder(Channel)) { +- if (!Device->Receiving()) { ++ if (Device->Priority() < 0) { + bool MaySwitchTransponder = Device->MaySwitchTransponder(Channel); + if (MaySwitchTransponder || Device->ProvidesTransponderExclusively(Channel) && now - lastActivity > Setup.EPGScanTimeout * 3600) { + if (!MaySwitchTransponder) { diff --git a/multimedia/vdr/files/patch-receiver.h-LEGACY_CRECEIVER b/multimedia/vdr/files/patch-receiver.h-LEGACY_CRECEIVER new file mode 100644 index 000000000000..2d12071a5593 --- /dev/null +++ b/multimedia/vdr/files/patch-receiver.h-LEGACY_CRECEIVER @@ -0,0 +1,11 @@ +--- receiver.h.orig ++++ receiver.h +@@ -14,7 +14,7 @@ + + #define MAXRECEIVEPIDS 64 // the maximum number of PIDs per receiver + +-//#define LEGACY_CRECEIVER // Code enclosed with this macro is deprecated and may be removed in a future version ++#define LEGACY_CRECEIVER // Code enclosed with this macro is deprecated and may be removed in a future version + + class cReceiver { + friend class cDevice; diff --git a/multimedia/vdr/files/patch-recording.h-__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS b/multimedia/vdr/files/patch-recording.h-__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS new file mode 100644 index 000000000000..7f029ed6febe --- /dev/null +++ b/multimedia/vdr/files/patch-recording.h-__RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS @@ -0,0 +1,11 @@ +--- recording.h.orig ++++ recording.h +@@ -22,7 +22,7 @@ + #define TIMERMACRO_TITLE "TITLE" + #define TIMERMACRO_EPISODE "EPISODE" + +-//#define __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS // Code enclosed with this macro is deprecated and may be removed in a future version ++#define __RECORDING_H_DEPRECATED_DIRECT_MEMBER_ACCESS // Code enclosed with this macro is deprecated and may be removed in a future version + + extern bool VfatFileSystem; + extern int InstanceId; diff --git a/multimedia/vdr/files/patch-vdr-1.7.22_FreeBSD b/multimedia/vdr/files/patch-vdr-1.7.22_FreeBSD deleted file mode 100644 index c65207d1bc63..000000000000 --- a/multimedia/vdr/files/patch-vdr-1.7.22_FreeBSD +++ /dev/null @@ -1,1222 +0,0 @@ -Index: Make.config.template -@@ -8,6 +8,11 @@ - # - # $Id: Make.config.template 2.4 2011/12/04 14:41:00 kls Exp $ - -+OSTYPE ?= $(shell uname -s) -+ifeq ($(OSTYPE),FreeBSD) -+FREEBSD=1 -+endif -+ - ### The C compiler and options: - - CC = gcc -@@ -23,20 +28,34 @@ endif - - ### The directory environment: - --#DVBDIR = /usr/src/v4l-dvb/linux --MANDIR = /usr/local/man --BINDIR = /usr/local/bin -+PREFIX = /usr/local -+MANDIR = $(PREFIX)/man -+BINDIR = $(PREFIX)/bin - --LOCDIR = ./locale - PLUGINDIR= ./PLUGINS --PLUGINLIBDIR= $(PLUGINDIR)/lib - VIDEODIR = /video -+ -+ifdef FREEBSD -+# you have to set DVBDIR to a valid path!!! -+# you will need extra patches for DVBDIR!!! -+DVBDIR = /usr/src/v4l-dvb/linux -+LOCDIR = $(PREFIX)/share/locale -+CONFDIR = $(PREFIX)/etc/vdr -+PLUGINLIBDIR= $(PREFIX)/lib/vdr -+else -+LOCDIR = ./locale -+PLUGINLIBDIR= $(PLUGINDIR)/lib - CONFDIR = $(VIDEODIR) -+endif - - ### The remote control: - - LIRC_DEVICE = /var/run/lirc/lircd -+ifdef FREEBSD -+RCU_DEVICE = /dev/cuau0 -+else - RCU_DEVICE = /dev/ttyS1 -+endif - - ## Define if you want vdr to not run as root - #VDR_USER = vdr -@@ -46,3 +65,7 @@ RCU_DEVICE = /dev/ttyS1 - ifdef DVBDIR - INCLUDES += -I$(DVBDIR)/include - endif -+ -+ifdef FREEBSD -+INCLUDES += -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 $(shell pkg-config --libs freetype2 fontconfig) -liconv -lintl -lutil -+else - LIBS = -ljpeg -lpthread -ldl -lcap -lrt $(shell pkg-config --libs freetype2 fontconfig) -+endif - INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig) - - PLUGINDIR= ./PLUGINS -@@ -151,7 +160,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): - -@@ -190,7 +203,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: - -@@ -213,13 +230,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, ¶mbuf, &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 - #include -+#ifdef __FreeBSD__ -+#include -+#else - #include -+#endif - #include - #include - #include -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 - #include -+#ifdef __FreeBSD__ -+#include -+#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 -+#else - #include -+#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" - -+#ifdef __FreeBSD__ -+/* 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 -=================================================================== -RCS file: /progs/network/ccvs/vdr/svdrp.c,v -retrieving revision 1.1.1.2 -retrieving revision 1.4 -diff -u -r1.1.1.2 -r1.4 ---- svdrp.c 2010/02/17 10:14:45 1.1.1.2 -+++ svdrp.c 2010/02/17 12:34:54 1.4 -@@ -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) -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 -+#ifdef __FreeBSD__ -+#include -+#include -+#else - #include - #include -+#endif - #include - #include - #include - #include - #include - #include -+#ifndef __FreeBSD__ - #include -+#endif - #include - #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(::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 - #include - #include -+#ifdef __FreeBSD__ -+#include -+#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 - #include - #include -+#ifdef __FreeBSD__ -+#include -+#include -+#else - #include -+#endif - #include - #include - #include - #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); -@@ -818,7 +846,11 @@ - const char *cCharSetConv::Convert(const char *From, char *To, size_t ToLength) - { - if (cd != (iconv_t)-1 && From && *From) { -+#ifdef __FreeBSD__ -+ const char *FromPtr = (char *)From; -+#else - char *FromPtr = (char *)From; -+#endif - size_t FromLength = strlen(From); - char *ToPtr = To; - if (!ToPtr) { -@@ -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 -=================================================================== -RCS file: /progs/network/ccvs/vdr/tools.h,v -retrieving revision 1.1.1.2 -retrieving revision 1.3 -diff -u -r1.1.1.2 -r1.3 ---- tools.h 2010/02/17 10:14:44 1.1.1.2 -+++ tools.h 2010/02/17 10:46:55 1.3 -@@ -26,6 +26,12 @@ - #include - #include - -+#ifdef __FreeBSD__ -+#include -+typedef int (*__compar_fn_t) (__const void *, __const void *); -+#undef isnumber -+#endif -+ - typedef unsigned char uchar; - - extern int SysLogLevel; -@@ -216,9 +222,17 @@ - bool SpinUpDisk(const char *FileName); - void TouchFile(const char *FileName); - time_t LastModifiedTime(const char *FileName); -+#ifdef __FreeBSD__ -+cString WeekDayNameReal(int WeekDay); -+#else - cString WeekDayName(int WeekDay); -+#endif - cString WeekDayName(time_t t); -+#ifdef __FreeBSD__ -+cString WeekDayNameFullReal(int WeekDay); -+#else - cString WeekDayNameFull(int WeekDay); -+#endif - cString WeekDayNameFull(time_t t); - cString DayDateTime(time_t t = 0); - cString TimeToString(time_t t); -Index: vdr.c ---- vdr.c -+++ vdr.c -@@ -32,8 +32,13 @@ - #include - #include - #include -+#ifndef __FreeBSD__ - #include - #include -+#else -+#include -+#include -+#endif - #include - #include - #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 -+#else - #include -+#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 - #include -+#ifndef __FreeBSD__ - #include -+#endif - #include // for broadcaster stupidity workaround - #include - #include "descriptor.h" -@@ -381,7 +383,11 @@ - if (SystemCharacterTable) { - iconv_t cd = iconv_open(SystemCharacterTable, fromCode); - if (cd != (iconv_t)-1) { -+#ifdef __FreeBSD__ -+ const char *fromPtr = from; -+#else - char *fromPtr = (char *)from; -+#endif - while (fromLength > 0 && toLength > 1) { - if (iconv(cd, &fromPtr, &fromLength, &to, &toLength) == size_t(-1)) { - if (errno == EILSEQ) { ---- 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) diff --git a/multimedia/vdr/files/patch-vdr-1.7.27_FreeBSD b/multimedia/vdr/files/patch-vdr-1.7.27_FreeBSD new file mode 100644 index 000000000000..65120f540818 --- /dev/null +++ b/multimedia/vdr/files/patch-vdr-1.7.27_FreeBSD @@ -0,0 +1,1226 @@ +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, ¶mbuf, &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 + #include ++#ifdef __FreeBSD__ ++#include ++#else + #include ++#endif + #include + #include + #include +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 + #include ++#ifdef __FreeBSD__ ++#include ++#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 ++#else + #include ++#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" + ++#ifdef __FreeBSD__ ++/* 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 +=================================================================== +RCS file: /progs/network/ccvs/vdr/svdrp.c,v +retrieving revision 1.1.1.2 +retrieving revision 1.4 +diff -u -r1.1.1.2 -r1.4 +--- svdrp.c 2010/02/17 10:14:45 1.1.1.2 ++++ svdrp.c 2010/02/17 12:34:54 1.4 +@@ -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) +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 ++#ifdef __FreeBSD__ ++#include ++#include ++#else + #include + #include ++#endif + #include + #include + #include + #include + #include + #include ++#ifndef __FreeBSD__ + #include ++#endif + #include + #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(::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 + #include + #include ++#ifdef __FreeBSD__ ++#include ++#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 + #include + #include ++#ifdef __FreeBSD__ ++#include ++#include ++#else + #include ++#endif + #include + #include + #include + #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); +@@ -818,7 +846,11 @@ + const char *cCharSetConv::Convert(const char *From, char *To, size_t ToLength) + { + if (cd != (iconv_t)-1 && From && *From) { ++#ifdef __FreeBSD__ ++ const char *FromPtr = (char *)From; ++#else + char *FromPtr = (char *)From; ++#endif + size_t FromLength = strlen(From); + char *ToPtr = To; + if (!ToPtr) { +@@ -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 + #include + ++#ifdef __FreeBSD__ ++#include ++typedef int (*__compar_fn_t) (__const void *, __const void *); ++#undef isnumber ++#endif ++ + typedef unsigned char uchar; + + extern int SysLogLevel; +@@ -227,9 +233,17 @@ 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 + cString WeekDayName(time_t t); ++#ifdef __FreeBSD__ ++cString WeekDayNameFullReal(int WeekDay); ++#else + cString WeekDayNameFull(int WeekDay); ++#endif + cString WeekDayNameFull(time_t t); + cString DayDateTime(time_t t = 0); + cString TimeToString(time_t t); +Index: vdr.c +--- vdr.c ++++ vdr.c +@@ -32,8 +32,13 @@ + #include + #include + #include ++#ifndef __FreeBSD__ + #include + #include ++#else ++#include ++#include ++#endif + #include + #include + #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 ++#else + #include ++#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 + #include ++#ifndef __FreeBSD__ + #include ++#endif + #include // for broadcaster stupidity workaround + #include + #include "descriptor.h" +@@ -381,7 +383,11 @@ + if (SystemCharacterTable) { + iconv_t cd = iconv_open(SystemCharacterTable, fromCode); + if (cd != (iconv_t)-1) { ++#ifdef __FreeBSD__ ++ const char *fromPtr = from; ++#else + char *fromPtr = (char *)from; ++#endif + while (fromLength > 0 && toLength > 1) { + if (iconv(cd, &fromPtr, &fromLength, &to, &toLength) == size_t(-1)) { + if (errno == EILSEQ) { +--- 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) diff --git a/multimedia/vdr/files/patch-z-config.c b/multimedia/vdr/files/patch-z-config.c deleted file mode 100644 index 6ffc4a252f6e..000000000000 --- a/multimedia/vdr/files/patch-z-config.c +++ /dev/null @@ -1,10 +0,0 @@ ---- config.c.orig -+++ config.c -@@ -72,7 +72,6 @@ cSatCableNumbers::cSatCableNumbers(int S - { - size = Size; - array = MALLOC(int, size); -- memset(array, size * sizeof(int), 0); - FromString(s); - } - diff --git a/multimedia/vdr/files/vdr-1.7.27-pat.diff b/multimedia/vdr/files/vdr-1.7.27-pat.diff new file mode 100644 index 000000000000..859c9bdf4b1e --- /dev/null +++ b/multimedia/vdr/files/vdr-1.7.27-pat.diff @@ -0,0 +1,44 @@ +--- pat.c 2012/03/02 10:56:45 2.17 ++++ pat.c 2012/04/09 11:49:39 2.18 +@@ -456,11 +456,28 @@ + } + } + break; +- case 0x80: // STREAMTYPE_USER_PRIVATE - DigiCipher II VIDEO (ANSI/SCTE 57) +- Vpid = esPid; +- Ppid = pmt.getPCRPid(); +- Vtype = 0x02; // compression based upon MPEG-2 +- ProcessCaDescriptors = true; ++ // see http://www.smpte-ra.org/mpegreg/mpegreg.html for the codes used below ++ case 0x80: { // STREAMTYPE_USER_PRIVATE - DigiCipher II VIDEO (ANSI/SCTE 57) ++ SI::Descriptor *d; ++ for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) { ++ switch (d->getDescriptorTag()) { ++ case SI::RegistrationDescriptorTag: { ++ SI::RegistrationDescriptor *rd = (SI::RegistrationDescriptor *)d; ++ switch (rd->getFormatIdentifier()) { ++ case 0x44434949: // 'DCII' aka. DigiCipher II ++ Vpid = esPid; ++ Ppid = pmt.getPCRPid(); ++ Vtype = 0x02; // compression based upon MPEG-2 ++ ProcessCaDescriptors = true; ++ break; ++ default: ; ++ } ++ } ++ break; ++ default: ; ++ } ++ } ++ } + break; + case 0x81: // STREAMTYPE_USER_PRIVATE - ATSC A/53 AUDIO (ANSI/SCTE 57) + { +@@ -495,7 +512,6 @@ + switch (d->getDescriptorTag()) { + case SI::RegistrationDescriptorTag: { + SI::RegistrationDescriptor *rd = (SI::RegistrationDescriptor *)d; +- // http://www.smpte-ra.org/mpegreg/mpegreg.html + switch (rd->getFormatIdentifier()) { + case 0x41432D33: // 'AC-3' + IsAc3 = true; diff --git a/multimedia/vdr/pkg-plist b/multimedia/vdr/pkg-plist index e1f34b025177..d9c6b8c66656 100644 --- a/multimedia/vdr/pkg-plist +++ b/multimedia/vdr/pkg-plist @@ -1,15 +1,17 @@ bin/svdrpsend bin/vdr bin/vdr-waitdvb -lib/vdr/libvdr-dvbsddevice.so.1.7.22 -lib/vdr/libvdr-svcsvr.so.1.7.22 -lib/vdr/libvdr-svccli.so.1.7.22 -lib/vdr/libvdr-status.so.1.7.22 -lib/vdr/libvdr-skincurses.so.1.7.22 -lib/vdr/libvdr-pictures.so.1.7.22 -lib/vdr/libvdr-osddemo.so.1.7.22 -lib/vdr/libvdr-hello.so.1.7.22 -lib/vdr/libvdr-svdrpdemo.so.1.7.22 +lib/vdr/libvdr-dvbsddevice.so.1.7.27 +lib/vdr/libvdr-svcsvr.so.1.7.27 +lib/vdr/libvdr-svccli.so.1.7.27 +lib/vdr/libvdr-status.so.1.7.27 +lib/vdr/libvdr-skincurses.so.1.7.27 +lib/vdr/libvdr-pictures.so.1.7.27 +lib/vdr/libvdr-osddemo.so.1.7.27 +lib/vdr/libvdr-hello.so.1.7.27 +lib/vdr/libvdr-svdrpdemo.so.1.7.27 +lib/vdr/libvdr-epgtableid0.so.1.7.27 +lib/vdr/libvdr-rcu.so.1.7.27 libdata/pkgconfig/vdr.pc %%NLS%%share/locale/ar/LC_MESSAGES/vdr.mo %%NLS%%share/locale/es_ES/LC_MESSAGES/vdr.mo @@ -106,7 +108,6 @@ include/vdr/remote.h include/vdr/recording.h include/vdr/recorder.h include/vdr/receiver.h -include/vdr/rcu.h include/vdr/plugin.h include/vdr/player.h include/vdr/pat.h @@ -135,6 +136,7 @@ include/vdr/cutter.h include/vdr/ci.h include/vdr/config.h include/vdr/channels.h +include/vdr/s2apiwrapper.h include/vdr/Make.global %%TTXPATCH%%include/vdr/vdrttxtsubshooks.h @exec mkdir -p %D/etc/vdr/plugins -- cgit v1.2.3