Hello community,

here is the log from the commit of package vdr for openSUSE:Factory checked in 
at 2014-04-22 17:09:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vdr (Old)
 and      /work/SRC/openSUSE:Factory/.vdr.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vdr"

Changes:
--------
--- /work/SRC/openSUSE:Factory/vdr/vdr.changes  2013-03-05 16:34:53.000000000 
+0100
+++ /work/SRC/openSUSE:Factory/.vdr.new/vdr.changes     2014-04-22 
17:09:22.000000000 +0200
@@ -1,0 +2,92 @@
+Tue Apr 22 10:38:57 UTC 2014 - seife+...@b1-systems.com
+
+- remove support for ancient distributions
+- list of patches which fix stuff:
+  vdr-1.7.21-pluginmissing.patch - don't die on missing plugin
+  vdr-1.7.29-menuselection.patch
+  vdr-1.7.36-wareagle.patch - wareagle icons
+  vdr-2.0.6-wareagle-fix.patch
+  vdr-2.0.3-dynamite.patch - allow the dynamite plugin
+  vdr-2.0.4-MainMenuHooks-v1_0_1.patch
+
+-------------------------------------------------------------------
+Thu Apr 10 21:40:38 UTC 2014 - seife+...@b1-systems.com
+
+- vdr.macros: remove vdr_old_plugin_* and vdr_install_plugin_*,
+  all current users are converted now
+
+-------------------------------------------------------------------
+Sun Apr  6 21:57:34 UTC 2014 - seife+...@b1-systems.com
+
+- fix broken record filenames in e.g. streamdev, bug in wareagle
+  patch (vdr-2.0.6-wareagle-fix.patch)
+
+-------------------------------------------------------------------
+Wed Apr  2 16:19:07 UTC 2014 - seife+...@b1-systems.com
+
+- small fix for classic runvdr init script
+- recommend instead of suggest runvdr-extreme on >=12.1, vdr-runvdr
+  on < 12.2
+
+-------------------------------------------------------------------
+Sun Mar 30 18:31:26 UTC 2014 - seife+...@b1-systems.com
+
+- fix build on SLES11
+- remove unused vdr_old_dvbapi.diff and Make.config
+
+-------------------------------------------------------------------
+Sun Mar 30 16:34:31 UTC 2014 - seife+...@b1-systems.com
+
+- split off init script into vdr-runvdr package
+  It is recommended to use runvdr-extreme-systemd instead
+
+-------------------------------------------------------------------
+Sun Mar 30 12:05:23 UTC 2014 - seife+...@b1-systems.com
+
+- avoid putting build time into locale files, causing republishing
+- install msgmerge wrapper to /usr/share/vdr to make it usable
+  by plugins
+
+-------------------------------------------------------------------
+Sun Mar 30 02:02:25 UTC 2014 - seife+...@b1-systems.com
+
+- update to vdr 2.0.6
+  - see HISTORY file for changes
+  - vdrapi version bumped to 2.0.6
+
+-------------------------------------------------------------------
+Sat Mar 29 20:12:03 UTC 2014 - seife+...@b1-systems.com
+
+- vdr.macros: allow empty srcdir in vdr_old_plugin_make
+
+-------------------------------------------------------------------
+Sat Mar 29 19:07:25 UTC 2014 - seife+...@b1-systems.com
+
+- vdr.macros: set vdr_includedir back to /usr/include/vdr
+
+-------------------------------------------------------------------
+Sat Mar 29 16:32:55 UTC 2014 - seife+...@b1-systems.com
+
+- remove plugin build macros
+
+-------------------------------------------------------------------
+Sun Jan 12 12:02:45 UTC 2014 - wagner-tho...@gmx.at
+
+- Update to vdr 2.0.5
+
+-------------------------------------------------------------------
+Tue Nov 26 16:06:50 UTC 2013 - h...@urpla.net
+
+- Update to vdr 2.0.4
+
+-------------------------------------------------------------------
+Tue Jun  4 21:33:54 UTC 2013 - h...@urpla.net
+
+- Adjust vdr macros
+
+-------------------------------------------------------------------
+Tue Jun  4 21:12:42 UTC 2013 - h...@urpla.net
+
+- Update to vdr 2.0.2
+
+-------------------------------------------------------------------

Old:
----
  channels.conf
  vdr-1.6.0-1.diff
  vdr-1.6.0-2.diff
  vdr-1.6.0-bnc786040-use-v4l2.patch
  vdr-1.6.0-const.diff
  vdr-1.6.0-gcc46.patch
  vdr-1.6.0-kernel-2.6.29.diff
  vdr-1.6.0-ncurses.diff
  vdr-1.6.0.tar.bz2
  vdr-FcFontSort-72c5ec3.diff
  vdr-gcc47.patch

New:
----
  msgmerge
  vdr-1.7.21-pluginmissing.patch
  vdr-1.7.29-menuselection.patch
  vdr-1.7.36-wareagle.patch
  vdr-2.0.3-dynamite.patch
  vdr-2.0.4-MainMenuHooks-v1_0_1.patch
  vdr-2.0.6-wareagle-fix.patch
  vdr-2.0.6.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vdr.spec ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:23.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:23.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package vdr
 #
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,28 +17,29 @@
 
 
 Name:           vdr
+BuildRequires:  doxygen
+BuildRequires:  fdupes
 BuildRequires:  fontconfig-devel
 BuildRequires:  freetype2-devel
 BuildRequires:  gcc-c++
+BuildRequires:  graphviz
+BuildRequires:  libcap-devel
 BuildRequires:  libjpeg-devel
+BuildRequires:  linux-glibc-devel
 BuildRequires:  ncurses-devel
-%if %suse_version > 1000
-BuildRequires:  libcap-devel
-%else
-BuildRequires:  libcap
-%endif
+BuildRequires:  pkg-config
 #
 %define vdrname         vdr
-%define vdr_apiversion  1.6.0
+%define vdr_apiversion  2.0.6
 %define vdr_localedir   %{_datadir}/vdr/locale
-%define vdr_libdir      %{_libdir}/vdr/
+%define vdr_libdir      %{_libdir}/vdr
 %define vdr_includedir  %{_includedir}/vdr
 %define vdr_videodir    /var/spool/video
 %define vdr_sysconfdir  /etc/vdr
 #
 Url:            http://www.tvdr.de/
-PreReq:         /usr/sbin/useradd %fillup_prereq %insserv_prereq
-Version:        1.6.0
+PreReq:         /usr/sbin/useradd
+Version:        2.0.6
 Release:        0
 Summary:        Video Disk Recorder
 License:        GPL-2.0+
@@ -48,12 +49,11 @@
 Source2:        sysconfig.vdr
 Source3:        vdr-shutdown.sh
 Source4:        runvdr
-#Source5:      README.SuSE-vdr
+Source5:        remote.conf
 Source6:        openvt.diff
 Source7:        vdr-genindex.c
-Source8:        channels.conf
-Source9:        remote.conf
 Source10:       vdr.macros
+Source42:       msgmerge
 # generated from wiki page
 Source90:       README.SuSE-vdr.txt
 Source91:       README.SuSE-vdr.html
@@ -61,24 +61,25 @@
 Source93:       vdr-fetchwikipage
 Source94:       vdr-renderwikipage
 Source95:       vdr-doc.desktop
-Patch0:         ftp://ftp.tvdr.de/vdr/Developer/vdr-1.6.0-1.diff
-Patch1:         ftp://ftp.tvdr.de/vdr/Developer/vdr-1.6.0-2.diff
-Patch20:        vdr-1.6.0-ncurses.diff
-Patch21:        vdr-1.6.0-kernel-2.6.29.diff
-Patch22:        vdr-1.6.0-const.diff
-# PATCH-FIX-UPSTREAM vdr-1.6.0-gcc46.patch idoen...@suse.de -- Fix compilation 
with gcc 4.6
-Patch23:        vdr-1.6.0-gcc46.patch
-# PATCH-FIX-UPSTREAM vdr-gcc47.patch dims...@opensuse.org -- Fix build with 
gcc 4.7.
-Patch25:        vdr-gcc47.patch
-# UPSTREAM 72c5ec3 to make it work with fontconfig-2.9
-Patch26:        vdr-FcFontSort-72c5ec3.diff
-# PATCH-FIX-Upstream vdr-1.6.0-bnc786040-use-v4l2.patch 
se...@novel.slipkontur.de -- use v4l2.
-Patch27:        vdr-1.6.0-bnc786040-use-v4l2.patch
+#
+Patch1:         vdr-1.7.29-menuselection.patch
+Patch2:         vdr-1.7.21-pluginmissing.patch
+Patch3:         vdr-1.7.36-wareagle.patch
+Patch4:         vdr-2.0.3-dynamite.patch
+Patch5:         vdr-2.0.4-MainMenuHooks-v1_0_1.patch
+Patch6:         vdr-2.0.6-wareagle-fix.patch
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Provides:       vdr-devel
 Provides:       vdr(abi) = %vdr_apiversion
+Obsoletes:      vdr(abi) < %vdr_apiversion
+Provides:       vdrapi = %vdr_apiversion
 Requires:       xorg-x11-fonts-scalable
-Recommends:     vdr-plugins dvb
+%if 0%{?suse_version} >= 1220
+Recommends:     runvdr-extreme-systemd
+%else
+Recommends:     vdr-runvdr
+%endif
 
 %package devel
 Summary:        Video Disk Recorder
@@ -86,86 +87,52 @@
 PreReq:         vdr = %version
 
 %description
-Video Disk Recorder (VDR) is a digital satellite (DVB) receiver
-program. It can record MPEG2 streams, as well as output the stream to
-TV.
-
-
-
-Authors:
---------
-    Klaus Schmidinger <klaus.schmidin...@tvdr.de>
-    Carsten Koch <carsten.k...@icem.de>
-    Plamen Ganev <pga...@com-it.net>
-    Heino Goldenstein <heino.goldenst...@microplex.de>
-    Guido Fiala <gfi...@s.netic.de>
-    Robert Schneider <robert.schnei...@lotus.com>
-    Niels de Carpentier <ni...@casema.net>
-    Martin Hammerschmid <mar...@hammerschmid.com>
-    Bastian Guse <bast...@nocopy.de>
-    Matthias Schniedermeyer <m...@citd.de>
-    Miha Setina <mihaset...@softhome.net>
-    Alberto Carraro <berto...@tin.it>
-    Deti Fliegl <d...@fliegl.de>
-    Dave Chapman <d...@dchapman.com>
-    Hans-Peter Raschke <hans-peter.rasc...@wintermann-datenservice.de>
-    Peter Hofmann <softw...@pxh.de>
-    Axel Gruber <a...@agm.de>
-    Arnold Niessen <nies...@iae.nl> <arnold.nies...@philips.com>
-    Jürgen Sauer <j...@automatix.de>
-    Benjamin Reichardt <reich...@math.uni-goettingen.de>
-    Henning Holtschneider <h...@holtschneider.com>
+Version 2.0 of VDR, the Linux Video Disk Recorder provides HDTV support, the
+Transport Stream recording format, DVB subtitles, ATSC support, and improved
+Electronic Program Guides handling. 
 
 %description devel
-Video Disk Recorder (VDR) is a digital satellite (DVB) receiver
-program. It can record MPEG2 streams, as well as output the stream to
-TV.
-
+Development files for VDR, needed for building plugins, including API 
documentation.
 
+%package runvdr
+Summary:        Init script for VDR
+Group:          Hardware/TV
+PreReq:         vdr = %version
+PreReq:         %fillup_prereq %insserv_prereq
 
-Authors:
---------
-    Klaus Schmidinger <klaus.schmidin...@tvdr.de>
-    Carsten Koch <carsten.k...@icem.de>
-    Plamen Ganev <pga...@com-it.net>
-    Heino Goldenstein <heino.goldenst...@microplex.de>
-    Guido Fiala <gfi...@s.netic.de>
-    Robert Schneider <robert.schnei...@lotus.com>
-    Niels de Carpentier <ni...@casema.net>
-    Martin Hammerschmid <mar...@hammerschmid.com>
-    Bastian Guse <bast...@nocopy.de>
-    Matthias Schniedermeyer <m...@citd.de>
-    Miha Setina <mihaset...@softhome.net>
-    Alberto Carraro <berto...@tin.it>
-    Deti Fliegl <d...@fliegl.de>
-    Dave Chapman <d...@dchapman.com>
-    Hans-Peter Raschke <hans-peter.rasc...@wintermann-datenservice.de>
-    Peter Hofmann <softw...@pxh.de>
-    Axel Gruber <a...@agm.de>
-    Arnold Niessen <nies...@iae.nl> <arnold.nies...@philips.com>
-    Jürgen Sauer <j...@automatix.de>
-    Benjamin Reichardt <reich...@math.uni-goettingen.de>
-    Henning Holtschneider <h...@holtschneider.com>
+%description runvdr
+The "classic" SUSE start script for VDR. Not recommended, use 
runvdr-extreme-systemd instead.
 
 %prep
 %setup -q -n vdr-%{version}
-cp %{SOURCE1} .
-cp %{SOURCE2} .
-cp %{SOURCE4} .
+cp %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} 
%{SOURCE7} .
+#
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
 #
 cat > Make.config <<EOF
 ### The C compiler options:
 CFLAGS   = $RPM_OPT_FLAGS -fPIC -Wall
-CXXFLAGS = -fPIC $RPM_OPT_FLAGS -Wall -Woverloaded-virtual
+CXXFLAGS = $RPM_OPT_FLAGS -fPIC -Wall -Werror=overloaded-virtual -Wparentheses
 ### The directory environment:
-MANDIR   = %{_mandir}
+PREFIX   = %{_prefix}
 BINDIR   = %{_bindir}
+INCDIR   = %{_includedir}
+LIBDIR   = %{vdr_libdir}
 LOCDIR   = %{vdr_localedir}
+MANDIR   = %{_mandir}
+PCDIR    = %{_libdir}/pkgconfig
+RESDIR   = %{_datadir}/vdr
+
 VIDEODIR = %{vdr_videodir}
-REMOTE   = LIRC
-PLUGINLIBDIR = %{vdr_libdir}
+CONFDIR  = %{vdr_sysconfdir}
+CACHEDIR = %{_localstatedir}/cache/vdr
+LIRC_DEVICE = /var/run/lirc/lircd
 VDR_USER = vdr
-WITH_CAPABILITIES = 1
 EOF
 #
 APIVERSION=`sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' config.h`
@@ -173,67 +140,45 @@
        echo "*** APIVERSION must be $APIVERSION, fix definition!"
        false
 fi
-%patch0 -p1
-%patch1 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
-%patch23
-%patch25 -p1
-%patch26 -p1
-%patch27 -p1
+# for some reason, graphviz doesn't like png here
+sed -i 's|^\(DOT_IMAGE_FORMAT\s\+= \).*$|\1svg|g
+        s|^\(INTERACTIVE_SVG\s\+= \).*$|\1YES|g'  Doxyfile
+# do not include build date in locale files
+cp -a %{SOURCE42} .
+chmod 0755 msgmerge
 
 %build
-#cp %{SOURCE5} README.SuSE
-cp %{SOURCE6} .
-cp %{SOURCE7} .
+# to use msgmerge script
+export PATH=`pwd`:$PATH
 make %{?jobs:-j%jobs}
 make plugins
+make srcdoc
 gcc -o vdr-genindex %{optflags} -funroll-loops vdr-genindex.c
 
 %install
-install -d -m 755 %{buildroot}%{_mandir}/man{1,5}
-install -d -m 755 %{buildroot}%{_sbindir}
-install -d -m 755 %{buildroot}%{_bindir}
-install -d -m 755 %{buildroot}%{vdr_sysconfdir}
-install -d -m 755 %{buildroot}%{vdr_sysconfdir}/plugins
-install -d -m 755 %{buildroot}%{vdr_videodir}
-install -d -m 755 %{buildroot}%{vdr_libdir}
-install -d -m 755 %{buildroot}%{vdr_includedir}
-install -d -m 755 %{buildroot}%{vdr_includedir}/libsi
-make    MANDIR=%{buildroot}%{_mandir} \
-        BINDIR=%{buildroot}%{_sbindir} \
-        VIDEODIR=%{buildroot}%{vdr_videodir} \
-       PLUGINLIBDIR=%{buildroot}%{vdr_libdir} \
-       LOCDIR=%{buildroot}%{vdr_localedir} \
-        install
-#
+%makeinstall
 install -m 644 *.conf %{buildroot}%{vdr_sysconfdir}
-for i in epg2html.pl svdrpsend.pl PLUGINS/src/sky/getskyepg.pl; do
-       install -m 755 $i %{buildroot}%{_bindir}/${i##*/}
-done
-install -m 644 *.h %{buildroot}%{vdr_includedir}
-install -m 644 libsi/*.h %{buildroot}%{vdr_includedir}/libsi
 install -m 644 Make.config %{buildroot}%{vdr_includedir}
-ln -s . %{buildroot}%{vdr_includedir}/vdr
-ln -s . %{buildroot}%{vdr_includedir}/include
-install -m 755 PLUGINS/lib/* %{buildroot}%{vdr_libdir}/
-install -m 755 %{SOURCE3} %{buildroot}%{vdr_sysconfdir}/shutdown.sh
-#sysconfig&init
+install -m 755 vdr-shutdown.sh %{buildroot}%{vdr_sysconfdir}/shutdown.sh
+install -d -m 755 %{buildroot}%{_localstatedir}/cache/vdr
+# sysconfig&init for vdr-runvdr
 install -d -m 755 %{buildroot}/var/adm/fillup-templates
 install -m 644 sysconfig.vdr 
%{buildroot}/var/adm/fillup-templates/sysconfig.vdr
 install -d -m 755 %{buildroot}/etc/init.d
+install -d -m 755 %{buildroot}%{_sbindir}
 install -m 755 rcvdr %{buildroot}/etc/init.d/vdr
-ln -s ../../etc/init.d/vdr %{buildroot}%{_sbindir}/rcvdr
+# ln -s ../../etc/init.d/vdr %%{buildroot}%%{_sbindir}/rcvdr
+ln -s service %{buildroot}%{_sbindir}/rcvdr
 # create plugins doc dir
 mkdir plugins
-cp -a PLUGINS/src/sky/channels.conf.sky PLUGINS/src/sky/lircd.conf.sky plugins
-cp -a PLUGINS/src/sky/README plugins/README.sky
-cp -a PLUGINS/src/osddemo/README plugins/README.osddemo
-rm %{buildroot}%{_sbindir}/runvdr
+for d in PLUGINS/src; do
+    test -d PLUGINS/src/$d && {
+       for f in README HISTORY COPYING; do
+           test -f PLUGINS/src/$d/$f && cp -a PLUGINS/src/$d/$f plugins/$f.$d
+       done
+    }
+done
 install -m 755 runvdr %{buildroot}%{_sbindir}/runvdr
-install -m 644 %{SOURCE8} %{buildroot}%{vdr_sysconfdir}/channels.conf
-install -m 644 %{SOURCE9} %{buildroot}%{vdr_sysconfdir}/remote.conf
 install -m 755 vdr-genindex %{buildroot}%{_bindir}
 #
 # docu
@@ -250,6 +195,11 @@
        echo "%%lang(${f%%%%/*}) %{vdr_localedir}/$f"
 done >> vdr.lang
 #
+# source code docu (installed manually for the sake of fdupes' success)
+install -d -m 755 %{buildroot}%{_docdir}/%{name}-devel
+cp -a srcdoc/html %{buildroot}%{_docdir}/%{name}-devel
+%fdupes %{buildroot}%{_docdir}/%{name}-devel
+#
 # rpm macro file
 install -d -m 755 %{buildroot}/etc/rpm
 cat > %{buildroot}/etc/rpm/macros.vdr <<EOF
@@ -263,6 +213,9 @@
 %%vdr_prereq      vdr(abi) = %{vdr_apiversion}
 EOF
 cat %{SOURCE10} >> %{buildroot}/etc/rpm/macros.vdr
+#
+# msgmerge helper for plugins
+install -m 0755 msgmerge %{buildroot}%{_datadir}/vdr/msgmerge
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -270,41 +223,49 @@
 %pre
 /usr/sbin/useradd -r -d %{vdr_videodir} -s /bin/false -c "Video Disk Recorder" 
-g video vdr 2> /dev/null || :
 
-%post
+%post runvdr
 %{fillup_and_insserv vdr}
 
-%postun
+%postun runvdr
 %{insserv_cleanup}
 
-%preun
+%preun runvdr
 %stop_on_removal
 
 %files -f vdr.lang
 %defattr(-,root,root)
 %doc README.SuSE README.SuSE.html greenish.css
 %doc %{_datadir}/susehelp
-%doc COPYING INSTALL README CONTRIBUTORS HISTORY
+%doc COPYING INSTALL README* UPDATE* CONTRIBUTORS HISTORY
 %doc MANUAL channels.conf.* PLUGINS.html plugins
 %doc openvt.diff
 %attr(755,vdr,root) %dir %{vdr_videodir}
 %attr(755,vdr,root) %dir %{vdr_sysconfdir}
+%attr(755,vdr,root) %dir %{_localstatedir}/cache/vdr
 %dir %{vdr_libdir}
 %dir %{_datadir}/vdr
 %dir %{vdr_localedir}
 %dir %{vdr_localedir}/*
 %dir %{vdr_localedir}/*/LC_MESSAGES
 %attr(-,vdr,root) %config(noreplace) %{vdr_sysconfdir}/*
-%{_sbindir}/*
 %{_bindir}/*
+%{_sbindir}/rcvdr
 %{vdr_libdir}/*
 %{_mandir}/man?/*
-/etc/init.d/*
-/var/adm/fillup-templates/*
 
 %files devel
 %defattr(-,root,root)
 %config /etc/rpm/macros.vdr
-%dir %{vdr_includedir}
-%{vdr_includedir}/*
+%{vdr_includedir}
+%{_includedir}/libsi
+%{_libdir}/pkgconfig/*
+%{_docdir}/%{name}-devel
+%{_datadir}/vdr/msgmerge
+
+%files runvdr
+%defattr(-,root,root)
+/etc/init.d/*
+%{_sbindir}/runvdr
+/var/adm/fillup-templates/*
 
 %changelog

++++++ README.SuSE-vdr.html ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:23.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:23.000000000 +0200
@@ -33,7 +33,7 @@
 Astra-19.2E (DVB-S). You can create you own using dvbscan. For example if you
 live in Nuernberg, Germany and want to create a channels.conf for DVB-T you
 would run</p>
-<pre> dvbscan -o vdr /usr/share/dvb/scan/dvb-t/de-Nuernberg &gt; 
/etc/vdr/channels.conf
+<pre> scan -o vdr /usr/share/dvb/scan/dvb-t/de-Nuernberg &gt; 
/etc/vdr/channels.conf
 </pre>
 <a name='Using%20vdr%20with%20a%20TV%20set%20attached'></a><h2>Using vdr with 
a TV set attached</h2>
 
@@ -84,4 +84,4 @@
 
 <p>Packages for the most recent stable vdr version are available via the
 <a href='http://download.opensuse.org/repositories/vdr/'>openSUSE build 
service</a></p>
-</html></body>
\ No newline at end of file
+</html></body>

++++++ README.SuSE-vdr.txt ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:23.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:23.000000000 +0200
@@ -14,8 +14,8 @@
   • /var/spool/video is the place where recordings are stored. If you are low
     on space you should consider putting this on a separate partition.
     Recordings can take up several Gigabytes.
-  • /usr/lib/vdr contains shared libraries for plugins. If you compile you own
-    plugins you need to put them there.
+  • /usr/{lib,lib64}/vdr contains shared libraries for plugins. If you compile
+    you own plugins you need to put them there.
   • /usr/include/vdr contains header files necessary to compile plugins.
 
 Start scripts
@@ -36,7 +36,7 @@
 live in Nuernberg, Germany and want to create a channels.conf for DVB-T you
 would run
 
- dvbscan -o vdr /usr/share/dvb/scan/dvb-t/de-Nuernberg > /etc/vdr/channels.conf
+ scan -o vdr /usr/share/dvb/scan/dvb-t/de-Nuernberg > /etc/vdr/channels.conf
 
 Using vdr with a TV set attached
 

++++++ msgmerge ++++++
#!/bin/bash
# wrapper script for msgmerge to avoid changed POT-Creation-Date:
# on every rebuild.
# (C) 2014 Stefan Seyfried, License: WTFPL v2
#
# msgmerge is called like that in vdr makefiles
# msgmerge -U --no-wrap --no-location --backup=none -q -N po/lt_LT.po 
po/skincurses.pot
ARGS="$@"
NUM=$#
shift $((NUM - 2))
IN="$1"
CREATE=$(grep ^\"POT-Creation-Date: "$IN")
CREATE=${CREATE//\\/\\\\} # double the backslashes...
/usr/bin/msgmerge $ARGS
RET=$?
sed -i -e s#^.POT-Creation-Date:.*#"$CREATE"# "$IN"
exit $RET
++++++ rcvdr ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:23.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:23.000000000 +0200
@@ -19,7 +19,7 @@
 ### END INIT INFO
 
 # Check for missing binaries (stale symlinks should not happen)
-VDR_BIN=/usr/sbin/vdr
+VDR_BIN=/usr/bin/vdr
 test -x $VDR_BIN || exit 5
 
 # Check for existence of needed config file and read it
@@ -82,10 +82,16 @@
        rm -f /var/run/runvdr_exit
        /bin/openvt -c "$VDR_VTNUMBER" $doswitch /usr/sbin/runvdr
 
-       sleep 1 && checkproc $VDR_BIN
-
-       # Remember status and be verbose
-       rc_status -v
+       # especially during system startup, it can take quite some time until 
vdr is running
+       for i in 1 2 3 4 5 6 7 8 9 10; do
+               sleep 1
+               checkproc $VDR_BIN
+               RET=$?
+               rc_status
+               if [ $RET = 0 ]; then
+                       break
+               fi
+       done
        ;;
     stop)
        echo -n "Shutting down Video Disk Recorder "

++++++ runvdr ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:23.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:23.000000000 +0200
@@ -10,7 +10,7 @@
 #
 # $Id: runvdr 1.11 2003/08/26 16:15:41 kls Exp $
 
-VDR_BIN="/usr/sbin/vdr"
+VDR_BIN="/usr/bin/vdr"
 rcdvb="/usr/sbin/rcdvb"
 
 cd # go home

++++++ sysconfig.vdr ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:23.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:23.000000000 +0200
@@ -1,3 +1,8 @@
+################################################################
+###### Attention: This is only used by vdr-runvdr package ######
+### runvdr-extreme-systemd is configured in /etc/runvdr.conf ###
+################################################################
+
 ## Path:        Applications/VDR
 ## Description: VDR digital video recorder configuration
 ## ServiceRestart: vdr

++++++ vdr-1.7.21-pluginmissing.patch ++++++
diff -ruN vdr-1.7.20/plugin.c vdr-1.7.20.patched//plugin.c
--- vdr-1.7.20/plugin.c 2010-01-06 12:36:46.000000000 +0100
+++ vdr-1.7.20.patched//plugin.c        2011-08-16 23:48:20.264919835 +0200
@@ -317,6 +317,12 @@
   char *p = strchr(s, ' ');
   if (p)
      *p = 0;
+  struct stat st;
+  if (stat (cString::sprintf("%s/%s%s%s%s", directory, LIBVDR_PREFIX, s, 
SO_INDICATOR, APIVERSION), &st) && errno == ENOENT) {
+     esyslog("WARN: missing plugin '%s'", s);
+     fprintf(stderr, "vdr: missing plugin '%s'\n", s);
+     }
+  else
   dlls.Add(new cDll(cString::sprintf("%s/%s%s%s%s", directory, LIBVDR_PREFIX, 
s, SO_INDICATOR, APIVERSION), Args));
   free(s);
 }
@@ -325,7 +331,7 @@
 {
   for (cDll *dll = dlls.First(); dll; dll = dlls.Next(dll)) {
       if (!dll->Load(Log))
-         return false;
+         ;
       }
   return true;
 }
++++++ vdr-1.7.29-menuselection.patch ++++++
diff -Nru vdr-1.7.29-vanilla/osdbase.c vdr-1.7.29-menuselection/osdbase.c
--- vdr-1.7.29-vanilla/osdbase.c        2012-07-17 22:37:09.000000000 +0300
+++ vdr-1.7.29-menuselection/osdbase.c  2012-07-17 22:44:15.000000000 +0300
@@ -77,6 +77,7 @@
 {
   isMenu = true;
   digit = 0;
+  key_nr = -1;
   hasHotkeys = false;
   displayMenuItems = 0;
   title = NULL;
@@ -126,7 +127,7 @@
         digit = -1; // prevents automatic hotkeys - input already has them
      if (digit >= 0) {
         digit++;
-        buffer = cString::sprintf(" %c %s", (digit < 10) ? '0' + digit : ' ' , 
s);
+        buffer = cString::sprintf(" %2d%s %s", digit, (digit > 9) ? "" : " ", 
s);
         s = buffer;
         }
      }
@@ -472,20 +473,60 @@
      }
 }
 
+#define MENUKEY_TIMEOUT 1500
+
 eOSState cOsdMenu::HotKey(eKeys Key)
 {
-  for (cOsdItem *item = First(); item; item = Next(item)) {
+  bool match = false;
+  bool highlight = false;
+  int  item_nr;
+  int  i;
+
+  if (Key == kNone) {
+     if (lastActivity.TimedOut())
+        Key = kOk;
+     else
+        return osContinue;
+     }
+  else
+     lastActivity.Set(MENUKEY_TIMEOUT);
+  for (cOsdItem *item = Last(); item; item = Prev(item)) {
       const char *s = item->Text();
-      if (s && (s = skipspace(s)) != NULL) {
-         if (*s == Key - k1 + '1') {
+      i = 0;
+      item_nr = 0;
+      if (s && (s = skipspace(s)) != '\0' && '0' <= s[i] && s[i] <= '9') {
+         do {
+            item_nr = item_nr * 10 + (s[i] - '0');
+            }
+         while ( !((s[++i] == '\t')||(s[i] == ' ')) && (s[i] != '\0') && ('0' 
<= s[i]) && (s[i] <= '9'));
+         if ((Key == kOk) && (item_nr == key_nr)) {
             current = item->Index();
             RefreshCurrent();
             Display();
             cRemote::Put(kOk, true);
+            key_nr = -1;
             break;
             }
+         else if (Key != kOk) {
+            if (!highlight && (item_nr == (Key - k0))) {
+               highlight = true;
+               current = item->Index();
+               }
+            if (!match && (key_nr == -1) && ((item_nr / 10) == (Key - k0))) {
+               match = true;
+               key_nr = (Key - k0);
+               }
+            else if (((key_nr == -1) && (item_nr == (Key - k0))) || (!match && 
(key_nr >= 0) && (item_nr == (10 * key_nr + Key - k0)))) {
+               current = item->Index();
+               cRemote::Put(kOk, true);
+               key_nr = -1;
+               break;
+               }
+            }
          }
       }
+  if ((!match) && (Key != kNone))
+     key_nr = -1;
   return osContinue;
 }
 
@@ -524,8 +565,8 @@
         }
      }
   switch (int(Key)) {
-    case k0:      return osUnknown;
-    case k1...k9: return hasHotkeys ? HotKey(Key) : osUnknown;
+    case kNone:
+    case k0...k9: return hasHotkeys ? HotKey(Key) : osUnknown;
     case kUp|k_Repeat:
     case kUp:   CursorUp();   break;
     case kDown|k_Repeat:
diff -Nru vdr-1.7.29-vanilla/osdbase.h vdr-1.7.29-menuselection/osdbase.h
--- vdr-1.7.29-vanilla/osdbase.h        2012-07-17 22:37:09.000000000 +0300
+++ vdr-1.7.29-menuselection/osdbase.h  2012-07-17 22:44:15.000000000 +0300
@@ -97,6 +97,8 @@
   char *status;
   int digit;
   bool hasHotkeys;
+  int key_nr;
+  cTimeMs lastActivity;
   void DisplayHelp(bool Force = false);
 protected:
   void SetDisplayMenu(void);
++++++ vdr-1.7.36-wareagle.patch ++++++
diff -ruN vdr-1.7.36.orig/config.c vdr-1.7.36/config.c
--- vdr-1.7.36.orig/config.c    2013-01-27 12:54:57.743017655 +0100
+++ vdr-1.7.36/config.c 2013-01-27 12:56:24.230017960 +0100
@@ -376,6 +376,7 @@
   strcpy(OSDLanguage, ""); // default is taken from environment
   strcpy(OSDSkin, "lcars");
   strcpy(OSDTheme, "default");
+  WarEagleIcons = 1;
   PrimaryDVB = 1;
   ShowInfoOnChSwitch = 1;
   TimeoutRequChInfo = 1;
@@ -578,6 +579,7 @@
   if      (!strcasecmp(Name, "OSDLanguage"))       { strn0cpy(OSDLanguage, 
Value, sizeof(OSDLanguage)); I18nSetLocale(OSDLanguage); }
   else if (!strcasecmp(Name, "OSDSkin"))             Utf8Strn0Cpy(OSDSkin, 
Value, MaxSkinName);
   else if (!strcasecmp(Name, "OSDTheme"))            Utf8Strn0Cpy(OSDTheme, 
Value, MaxThemeName);
+  else if (!strcasecmp(Name, "WarEagleIcons"))       WarEagleIcons      = 
atoi(Value);
   else if (!strcasecmp(Name, "PrimaryDVB"))          PrimaryDVB         = 
atoi(Value);
   else if (!strcasecmp(Name, "ShowInfoOnChSwitch"))  ShowInfoOnChSwitch = 
atoi(Value);
   else if (!strcasecmp(Name, "TimeoutRequChInfo"))   TimeoutRequChInfo  = 
atoi(Value);
@@ -684,6 +686,7 @@
   Store("OSDLanguage",        OSDLanguage);
   Store("OSDSkin",            OSDSkin);
   Store("OSDTheme",           OSDTheme);
+  Store("WarEagleIcons",      WarEagleIcons);
   Store("PrimaryDVB",         PrimaryDVB);
   Store("ShowInfoOnChSwitch", ShowInfoOnChSwitch);
   Store("TimeoutRequChInfo",  TimeoutRequChInfo);
diff -ruN vdr-1.7.36.orig/config.h vdr-1.7.36/config.h
--- vdr-1.7.36.orig/config.h    2013-01-27 12:54:57.743017655 +0100
+++ vdr-1.7.36/config.h 2013-01-27 12:56:24.230017960 +0100
@@ -250,6 +250,7 @@
   char OSDLanguage[I18N_MAX_LOCALE_LEN];
   char OSDSkin[MaxSkinName];
   char OSDTheme[MaxThemeName];
+  int WarEagleIcons;
   int PrimaryDVB;
   int ShowInfoOnChSwitch;
   int TimeoutRequChInfo;
diff -ruN vdr-1.7.36.orig/iconpatch.c vdr-1.7.36/iconpatch.c
--- vdr-1.7.36.orig/iconpatch.c 1970-01-01 01:00:00.000000000 +0100
+++ vdr-1.7.36/iconpatch.c      2013-01-27 12:56:24.231017960 +0100
@@ -0,0 +1,27 @@
+#include "iconpatch.h"
+
+#include <langinfo.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+bool IsLangUtf8(void)
+{
+  char *CodeSet = NULL;
+  if (setlocale(LC_CTYPE, ""))
+     CodeSet = nl_langinfo(CODESET);
+  else {
+     char *LangEnv = getenv("LANG"); // last resort in case locale stuff isn't 
installed
+     if (LangEnv) {
+        CodeSet = strchr(LangEnv, '.');
+        if (CodeSet)
+           CodeSet++; // skip the dot
+        }
+     }
+
+  if (CodeSet && strcasestr(CodeSet, "UTF-8") != 0)
+     return true;
+
+  return false;
+}
diff -ruN vdr-1.7.36.orig/iconpatch.h vdr-1.7.36/iconpatch.h
--- vdr-1.7.36.orig/iconpatch.h 1970-01-01 01:00:00.000000000 +0100
+++ vdr-1.7.36/iconpatch.h      2013-01-27 12:56:24.231017960 +0100
@@ -0,0 +1,70 @@
+/*
+ * iconpatch.h: Information of iconpatch
+ *
+ * Diese Datei ist die Übersichtsdatei für den Iconpatch.
+ * Hier werden kleine Infos abgelegt.
+ * Der Iconpatch ändert die Dateien:
+ *   iconpatch.h
+ *   menu.c
+ *   recording.c
+ *   fontosd.c
+ *
+ */
+
+// Iconpatch-Variablen - Anfang
+#define ICON_NUMBERSIGN        "\x23"
+#define ICON_ASTERISK          "\x2A"
+#define ICON_GREATER           "\x3E"
+#define ICON_EXCLAM            "\x21"
+#define ICON_PLUSMINUS         "\xB1"
+
+#define ICON_RESUME            "\x80"
+#define ICON_DVD               "\x81"
+#define ICON_FOLDER            "\x82"
+#define ICON_BLANK             "\x83"
+#define ICON_CUTTING           "\x84"
+#define ICON_MOVE_FILE         "\x85"
+#define ICON_MOVE_FOLDER       "\x86"
+#define ICON_BAR_START         "\x87"
+#define ICON_BAR_FILLED        "\x88"
+#define ICON_BAR_CLEAR         "\x89"
+#define ICON_BAR_END           "\x8A"
+#define ICON_REC               "\x8B"
+#define ICON_CLOCK             "\x8C"
+#define ICON_TV_CRYPTED        "\x8D"
+#define ICON_RADIO             "\x8E"
+#define ICON_TV                "\x8F"
+#define ICON_NEW               "\x90"
+#define ICON_ARROW             "\x91"
+#define ICON_RUNNING           "\x92"
+#define ICON_VPS               "\x93"
+#define ICON_CLOCK_UH          "\x94"
+#define ICON_CLOCK_LH          "\x95"
+
+// UTF-8 Icons
+#define ICON_RESUME_UTF8       "\uE000"
+#define ICON_DVD_UTF8          "\uE001"
+#define ICON_FOLDER_UTF8       "\uE002"
+#define ICON_BLANK_UTF8        "\uE003"
+#define ICON_CUTTING_UTF8      "\uE004"
+#define ICON_MOVE_FILE_UTF8    "\uE005"
+#define ICON_MOVE_FOLDER_UTF8  "\uE006"
+#define ICON_BAR_START_UTF8    "\uE007"
+#define ICON_BAR_FILLED_UTF8   "\uE008"
+#define ICON_BAR_EMPTY_UTF8    "\uE009"
+#define ICON_BAR_CLOSE_UTF8    "\uE00A"
+#define ICON_REC_UTF8          "\uE00B"
+#define ICON_CLOCK_UTF8        "\uE00C"
+#define ICON_TV_CRYPTED_UTF8   "\uE00D"
+#define ICON_RADIO_UTF8        "\uE00E"
+#define ICON_TV_UTF8           "\uE00F"
+#define ICON_NEW_UTF8          "\uE010"
+#define ICON_ARROW_UTF8        "\uE011"
+#define ICON_RUNNING_UTF8      "\uE012"
+#define ICON_VPS_UTF8          "\uE013"
+#define ICON_CLOCK_UH_UTF8     "\uE014"
+#define ICON_CLOCK_LH_UTF8     "\uE015"
+
+// Iconpatch-Variablen - Ende
+
+bool IsLangUtf8(void);
diff -ruN vdr-1.7.36.orig/Makefile vdr-1.7.36/Makefile
--- vdr-1.7.36.orig/Makefile    2013-01-27 12:54:57.743017655 +0100
+++ vdr-1.7.36/Makefile 2013-01-27 12:57:43.570018239 +0100
@@ -73,6 +73,8 @@
        skinclassic.o skinlcars.o skins.o skinsttng.o sourceparams.o sources.o 
spu.o status.o svdrp.o themes.o thread.o\
        timers.o tools.o transfer.o vdr.o videodir.o
 
+OBJS += iconpatch.o
+
 DEFINES  += $(CDEFINES)
 INCLUDES += $(CINCLUDES)
 
diff -ruN vdr-1.7.36.orig/menu.c vdr-1.7.36/menu.c
--- vdr-1.7.36.orig/menu.c      2013-01-27 12:54:57.741017655 +0100
+++ vdr-1.7.36/menu.c   2013-01-27 12:56:24.235017960 +0100
@@ -8,6 +8,7 @@
  */
 
 #include "menu.h"
+#include "iconpatch.h"
 #include <ctype.h>
 #include <limits.h>
 #include <math.h>
@@ -316,6 +317,14 @@
   if (!channel->GroupSep()) {
      if (sortMode == csmProvider)
         buffer = cString::sprintf("%d\t%s - %s", channel->Number(), 
channel->Provider(), channel->Name());
+     else if (Setup.WarEagleIcons) {
+        if (channel->Vpid() == 1 || channel->Vpid() == 0)
+           buffer = cString::sprintf("%d\t%s %-30s", channel->Number(), 
IsLangUtf8() ? ICON_RADIO_UTF8 : ICON_RADIO, channel->Name());
+        else if (channel->Ca() == 0)
+           buffer = cString::sprintf("%d\t%s %-30s", channel->Number(), 
IsLangUtf8() ? ICON_TV_UTF8 : ICON_TV, channel->Name());
+        else
+           buffer = cString::sprintf("%d\t%s %-30s", channel->Number(), 
IsLangUtf8() ? ICON_TV_CRYPTED_UTF8 : ICON_TV_CRYPTED, channel->Name());
+        }
      else
         buffer = cString::sprintf("%d\t%s", channel->Number(), 
channel->Name());
      }
@@ -1044,8 +1053,8 @@
      File++;
   else
      File = timer->File();
-  SetText(cString::sprintf("%c\t%d\t%s%s%s\t%02d:%02d\t%02d:%02d\t%s",
-                    !(timer->HasFlags(tfActive)) ? ' ' : timer->FirstDay() ? 
'!' : timer->Recording() ? '#' : '>',
+  SetText(cString::sprintf("%s\t%d\t%s%s%s\t%02d:%02d\t%02d:%02d\t%s",
+                    !(timer->HasFlags(tfActive)) ? " " : timer->FirstDay() ? 
Setup.WarEagleIcons ? IsLangUtf8() ? ICON_ARROW_UTF8 : ICON_ARROW : "!" : 
timer->Recording() ? Setup.WarEagleIcons ? IsLangUtf8() ? ICON_REC_UTF8 : 
ICON_REC : "#" : Setup.WarEagleIcons ? IsLangUtf8() ? ICON_CLOCK_UTF8 : 
ICON_CLOCK : ">",
                     timer->Channel()->Number(),
                     *name,
                     *name && **name ? " " : "",
@@ -1319,7 +1328,12 @@
   return r;
 }
 
-static const char *TimerMatchChars = " tT";
+static const char *TimerMatchChars[9] =
+{
+  " ", "t", "T",
+  ICON_BLANK, ICON_CLOCK_UH, ICON_CLOCK,
+  ICON_BLANK_UTF8, ICON_CLOCK_UH_UTF8, ICON_CLOCK_UTF8
+};
 
 bool cMenuScheduleItem::Update(bool Force)
 {
@@ -1328,17 +1342,17 @@
   Timers.GetMatch(event, &timerMatch);
   if (Force || timerMatch != OldTimerMatch) {
      cString buffer;
-     char t = TimerMatchChars[timerMatch];
-     char v = event->Vps() && (event->Vps() - event->StartTime()) ? 'V' : ' ';
-     char r = event->SeenWithin(30) && event->IsRunning() ? '*' : ' ';
+     const char *t = Setup.WarEagleIcons ? IsLangUtf8() ? 
TimerMatchChars[timerMatch+6] : TimerMatchChars[timerMatch+3] : 
TimerMatchChars[timerMatch];
+     const char *v = event->Vps() && (event->Vps() - event->StartTime()) ? 
Setup.WarEagleIcons ? IsLangUtf8() ? ICON_VPS_UTF8 : ICON_VPS : "V" : " ";
+     const char *r = event->SeenWithin(30) && event->IsRunning() ? 
Setup.WarEagleIcons ? IsLangUtf8() ? ICON_RUNNING_UTF8 : ICON_RUNNING : "*" : " 
";
      const char *csn = channel ? channel->ShortName(true) : NULL;
      cString eds = event->GetDateString();
      if (channel && withDate)
-        buffer = cString::sprintf("%d\t%.*s\t%.*s\t%s\t%c%c%c\t%s", 
channel->Number(), Utf8SymChars(csn, 999), csn, Utf8SymChars(eds, 6), *eds, 
*event->GetTimeString(), t, v, r, event->Title());
+        buffer = cString::sprintf("%d\t%.*s\t%.*s\t%s\t%s%s%s\t%s", 
channel->Number(), Utf8SymChars(csn, 6), csn, Utf8SymChars(eds, 6), *eds, 
*event->GetTimeString(), t, v, r, event->Title());
      else if (channel)
-        buffer = cString::sprintf("%d\t%.*s\t%s\t%c%c%c\t%s", 
channel->Number(), Utf8SymChars(csn, 999), csn, *event->GetTimeString(), t, v, 
r, event->Title());
+        buffer = cString::sprintf("%d\t%.*s\t%s\t%s%s%s\t%s", 
channel->Number(), Utf8SymChars(csn, 6), csn, *event->GetTimeString(), t, v, r, 
event->Title());
      else
-        buffer = cString::sprintf("%.*s\t%s\t%c%c%c\t%s", Utf8SymChars(eds, 
6), *eds, *event->GetTimeString(), t, v, r, event->Title());
+        buffer = cString::sprintf("%.*s\t%s\t%s%s%s\t%s", Utf8SymChars(eds, 
6), *eds, *event->GetTimeString(), t, v, r, event->Title());
      SetText(buffer);
      result = true;
      }
@@ -2584,6 +2598,7 @@
   Add(new cMenuEditStraItem(tr("Setup.OSD$Skin"),                   
&skinIndex, numSkins, skinDescriptions));
   if (themes.NumThemes())
   Add(new cMenuEditStraItem(tr("Setup.OSD$Theme"),                  
&themeIndex, themes.NumThemes(), themes.Descriptions()));
+  Add(new cMenuEditBoolItem(tr("Setup.OSD$WarEagle icons"),         
&data.WarEagleIcons));
   Add(new cMenuEditPrcItem( tr("Setup.OSD$Left (%)"),               
&data.OSDLeftP, 0.0, 0.5));
   Add(new cMenuEditPrcItem( tr("Setup.OSD$Top (%)"),                
&data.OSDTopP, 0.0, 0.5));
   Add(new cMenuEditPrcItem( tr("Setup.OSD$Width (%)"),              
&data.OSDWidthP, 0.5, 1.0));
diff -ruN vdr-1.7.36.orig/recording.c vdr-1.7.36/recording.c
--- vdr-1.7.36.orig/recording.c 2013-01-27 12:54:57.740017655 +0100
+++ vdr-1.7.36/recording.c      2013-01-27 12:56:24.236017960 +0100
@@ -8,6 +8,7 @@
  */
 
 #include "recording.h"
+#include "iconpatch.h"
 #include <ctype.h>
 #include <dirent.h>
 #include <errno.h>
@@ -881,7 +882,7 @@
 
 const char *cRecording::Title(char Delimiter, bool NewIndicator, int Level) 
const
 {
-  char New = NewIndicator && IsNew() ? '*' : ' ';
+  const char *New = NewIndicator && IsNew() ? Setup.WarEagleIcons ? 
IsLangUtf8() ? ICON_NEW_UTF8 : ICON_NEW : "*" : " ";
   free(titleBuffer);
   titleBuffer = NULL;
   if (Level < 0 || Level == HierarchyLevels()) {
++++++ vdr-2.0.3-dynamite.patch ++++++
++++ 810 lines (skipped)

++++++ vdr-2.0.4-MainMenuHooks-v1_0_1.patch ++++++
This is a "patch" for the Video Disk Recorder (VDR).

* History
2010-10-15: Version 1.0.1
- return a cOsdObject instead of its subclass cOsdMenu (thanks to
  Joe_D@vdrportal)
- version number defines in config.h now follow the ususal conventions:
  MAINMENUHOOKSVERSNUM is now a number, the newly added define
  MAINMENUHOOKSVERSION is a string (suggested by gnapheus@vdrportal)
- patch is now based on VDR 1.6.0
- updated documentation

2007-02-26: Version 1.0
- Initial revision.

* Authors:
Tobias Grimm  <vdr at e-tobi dot net>
Martin Prochnow  <nordlicht at martins-kabuff dot de>
Frank Schmirler  <vdrdev at schmirler dot de>
Christian Wieninger  <cwieninger at gmx dot de>

* Description:
This patch allows plugins to replace the VDR mainmenus "Schedule",
"Channels", "Timers" and "Recordings" by a different implementation.

The patch is based on a suggestion of Christian Wieninger back in 2006
(http://www.linuxtv.org/pipermail/vdr/2006-March/008234.html). It is
meant to be an interim solution for VDR 1.4 until (maybe) VDR 1.5
introduces an official API for this purpose.

* Installation
Change into the VDR source directory, then issue
  patch -p1 < path/to/MainMenuHooks-v1_0_1.patch
and recompile.

* Notes for plugin authors
The following code sample shows the required plugin code for replacing
the original Schedule menu:

bool cMyPlugin::Service(const char *Id, void *Data)
{
  cOsdMenu **menu = (cOsdMenu**) Data;
  if (MySetup.replaceSchedule &&
            strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0) {
    if (menu)
      *menu = (cOsdMenu*) MainMenuAction();
    return true;
  }
  return false;
}

Since patch version 1.0.1 the service call may return a cOsdObject
instead of a cOsdMenu. Use "#ifdef MAINMENUHOOKSVERSION" to detect
version 1.0.1.

A plugin can replace more than one menu at a time. Simply replace the
call to MainMenuAction() in the sample above by appropriate code.

Note that a plugin *should* offer a setup option which allows the user
to enable or disable the replacement. "Disabled" would be a reasonable
default setting. By testing for define MAINMENUHOOKSVERSNUM, a plugin
can leave the setup option out at compiletime.

In case there is an internal problem when trying to open the replacement
menu, it is safe to return true even though Data is NULL. However an
OSD message should indicate the problem to the user.

Feel free to ship this patch along with your plugin. However if you
think you need to modify the patch, we'd encourage you to contact the
authors first or at least use a service id which differs in more than
just the version number.

diff -ru vdr.orig/menu.c vdr/menu.c
--- vdr.orig/menu.c     2013-03-18 09:11:48.000000000 +0000
+++ vdr/menu.c  2013-03-27 17:29:58.767375783 +0000
@@ -3379,15 +3379,31 @@
 
   // Initial submenus:
 
+  cOsdObject *menu = NULL;
   switch (State) {
-    case osSchedule:   AddSubMenu(new cMenuSchedule); break;
-    case osChannels:   AddSubMenu(new cMenuChannels); break;
-    case osTimers:     AddSubMenu(new cMenuTimers); break;
-    case osRecordings: AddSubMenu(new cMenuRecordings(NULL, 0, OpenSubMenus)); 
break;
-    case osSetup:      AddSubMenu(new cMenuSetup); break;
-    case osCommands:   AddSubMenu(new cMenuCommands(tr("Commands"), 
&Commands)); break;
+    case osSchedule:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osSchedule", 
&menu))
+            menu = new cMenuSchedule;
+        break;
+    case osChannels:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osChannels", 
&menu))
+            menu = new cMenuChannels;
+        break;
+    case osTimers:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osTimers", &menu))
+            menu = new cMenuTimers;
+        break;
+    case osRecordings:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osRecordings", 
&menu))
+            menu = new cMenuRecordings(NULL, 0, OpenSubMenus);
+        break;
+    case osSetup:      menu = new cMenuSetup; break;
+    case osCommands:   menu = new cMenuCommands(tr("Commands"), &Commands); 
break;
     default: break;
     }
+  if (menu)
+     if (menu->IsMenu())
+        AddSubMenu((cOsdMenu *) menu);
 }
 
 cOsdObject *cMenuMain::PluginOsdObject(void)
@@ -3495,13 +3511,34 @@
   eOSState state = cOsdMenu::ProcessKey(Key);
   HadSubMenu |= HasSubMenu();
 
+  cOsdObject *menu = NULL;
   switch (state) {
-    case osSchedule:   return AddSubMenu(new cMenuSchedule);
-    case osChannels:   return AddSubMenu(new cMenuChannels);
-    case osTimers:     return AddSubMenu(new cMenuTimers);
-    case osRecordings: return AddSubMenu(new cMenuRecordings);
-    case osSetup:      return AddSubMenu(new cMenuSetup);
-    case osCommands:   return AddSubMenu(new cMenuCommands(tr("Commands"), 
&Commands));
+    case osSchedule:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osSchedule", 
&menu))
+            menu = new cMenuSchedule;
+        else
+            state = osContinue;
+        break;
+    case osChannels:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osChannels", 
&menu))
+            menu = new cMenuChannels;
+        else
+            state = osContinue;
+        break;
+    case osTimers:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osTimers", &menu))
+            menu = new cMenuTimers;
+        else
+            state = osContinue;
+        break;
+    case osRecordings:
+        if 
(!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osRecordings", 
&menu))
+            menu = new cMenuRecordings;
+        else
+            state = osContinue;
+        break;
+    case osSetup:      menu = new cMenuSetup; break;
+    case osCommands:   menu = new cMenuCommands(tr("Commands"), &Commands); 
break;
     case osStopRecord: if (Interface->Confirm(tr("Stop recording?"))) {
                           cOsdItem *item = Get(Current());
                           if (item) {
@@ -3553,6 +3590,12 @@
                default:      break;
                }
     }
+  if (menu) {
+     if (menu->IsMenu())
+        return AddSubMenu((cOsdMenu *) menu);
+     pluginOsdObject = menu;
+     return osPlugin;
+  } 
   if (!HasSubMenu() && Update(HadSubMenu))
      Display();
   if (Key != kNone) {
diff -ru vdr.orig/config.h vdr/config.h
--- vdr.orig/config.h   2013-03-16 15:12:14.000000000 +0000
+++ vdr/config.h        2013-03-27 17:50:05.204415063 +0000
@@ -36,6 +36,10 @@
 // plugins to work with newer versions of the core VDR as long as no
 // VDR header files have changed.
 
+// The MainMenuHook Patch's version number:
+#define MAINMENUHOOKSVERSION "1.0.1"
+#define MAINMENUHOOKSVERSNUM 10001  // Version * 10000 + Major * 100 + Minor
+
 #define MAXPRIORITY       99
 #define MINPRIORITY       (-MAXPRIORITY)
 #define LIVEPRIORITY      0                  // priority used when selecting a 
device for live viewing

++++++ vdr-2.0.6-wareagle-fix.patch ++++++
Index: b/recording.c
===================================================================
--- a/recording.c
+++ b/recording.c
@@ -1040,7 +1040,7 @@ const char *cRecording::Title(char Delim
                    Minutes % 60
                    );
         }
-     titleBuffer = strdup(cString::sprintf("%02d.%02d.%02d%c%02d:%02d%s%c%c%s",
+     titleBuffer = strdup(cString::sprintf("%02d.%02d.%02d%c%02d:%02d%s%s%c%s",
                             t->tm_mday,
                             t->tm_mon + 1,
                             t->tm_year % 100,
++++++ vdr-1.6.0.tar.bz2 -> vdr-2.0.6.tar.bz2 ++++++
++++ 95716 lines of diff (skipped)

++++++ vdr-shutdown.sh ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:24.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:24.000000000 +0200
@@ -6,10 +6,12 @@
 timer_fname="$4"       # filename for next recording
 manual_shutdown="$5"   # 1 if shutdown reqested by user
 
+HALT_OPTIONS="-p"
+
 test -f /etc/sysconfig/vdr  && . /etc/sysconfig/vdr
 
 if [ "$VDR_SHUTDOWN" = "fast" ]; then
-HALT_OPTIONS="-f"
+    HALT_OPTIONS+=" -f"
 fi
 
 # you need to add the following line to /etc/sudoers to make this script work

++++++ vdr.macros ++++++
--- /var/tmp/diff_new_pack.GMVz5z/_old  2014-04-22 17:09:24.000000000 +0200
+++ /var/tmp/diff_new_pack.GMVz5z/_new  2014-04-22 17:09:24.000000000 +0200
@@ -1,28 +1,29 @@
-%vdr_install_plugin() \
-for i in %*; do \
-  install -d -m 755 %{buildroot}%{vdr_libdir} \
-  install -m 755 libvdr-$i.so 
%{buildroot}%{vdr_libdir}/libvdr-$i.so.%{vdr_apiversion} \
-done \
+%vdrapi %(pkg-config --variable=apiversion vdr)
+
+%vdr_find_locale \
+echo '%%defattr (644, root, root, 755)' > vdrlocale.files \
+find %{buildroot}%{vdr_localedir} -type f -printf '%%P\\n' | while read f; do \
+    echo "%%lang(${f%%%%/*}) %{vdr_localedir}/$f" \
+done >> vdrlocale.files \
+%{nil}
+
+%vdr_find_locale_name(n:) \
+echo '%%defattr (644, root, root, 755)' > vdrlocale.files \
+find %{buildroot}%{vdr_localedir} -type f -name %{-n*}.mo -printf '%%P\\n' | 
while read f; do \
+    echo "%%lang(${f%%%%/*}) %{vdr_localedir}/$f" \
+done >> %{-n*}.files \
 %{nil}
 
-# for newer plugins, which automatically add the apiversion during build
-%vdr_install_plugin_new() \
-for i in %*; do \
-  install -d -m 755 %{buildroot}%{vdr_libdir} \
-  install -m 755 libvdr-$i.so.%{vdr_apiversion} 
%{buildroot}%{vdr_libdir}/libvdr-$i.so.%{vdr_apiversion} \
-done \
+%vdr_dirs \
+%dir %{_libdir}/vdr \
+%dir %{_datadir}/vdr \
+%dir %{vdr_localedir} \
+%dir %{vdr_localedir}/* \
+%dir %{vdr_localedir}/*/LC_MESSAGES \
 %{nil}
 
-%vdr_install_plugin_locale \
-if [ -d locale ]; then \
-  cd locale \
-  install -d -m 755 %buildroot%{vdr_localedir} \
-  for i in *_*; do \
-         install -d -m 755 %buildroot%{vdr_localedir}/$i/LC_MESSAGES \
-         install -m 644 $i/LC_MESSAGES/*.mo 
%buildroot%{vdr_localedir}/$i/LC_MESSAGES \
-  done \
-  cd .. \
-fi \
+%vdr_dirs_no_locale \
+%dir %{_libdir}/vdr \
 %{nil}
 
 %vdr_make() \

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to