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 > /etc/vdr/channels.conf +<pre> scan -o vdr /usr/share/dvb/scan/dvb-t/de-Nuernberg > /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