summaryrefslogtreecommitdiff
path: root/media-video/vdr/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-09-15 17:37:09 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-09-15 17:37:09 +0100
commit586819755b4dbfdffdc8a725ab7c0f86095b8489 (patch)
treed6790c838cfe9607c996e4913fdf11bad5fdd528 /media-video/vdr/files
parent3f71901f8c228f4de570abed1831ce3ee425343e (diff)
gentoo resync : 15.09.2018
Diffstat (limited to 'media-video/vdr/files')
-rw-r--r--media-video/vdr/files/vdr-2.0.7_systemd_argsdir.patch438
-rw-r--r--media-video/vdr/files/vdr-2.0.7_systemd_argsdir_vanilla.patch438
2 files changed, 0 insertions, 876 deletions
diff --git a/media-video/vdr/files/vdr-2.0.7_systemd_argsdir.patch b/media-video/vdr/files/vdr-2.0.7_systemd_argsdir.patch
deleted file mode 100644
index de9f4b90163f..000000000000
--- a/media-video/vdr/files/vdr-2.0.7_systemd_argsdir.patch
+++ /dev/null
@@ -1,438 +0,0 @@
-diff -Naur vdr-2.0.7.orig/HISTORY vdr-2.0.7/HISTORY
---- vdr-2.0.7.orig/HISTORY 2015-01-23 09:16:13.735620000 +0100
-+++ vdr-2.0.7/HISTORY 2015-01-23 09:17:29.038614491 +0100
-@@ -7916,6 +7916,16 @@
- - The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and
- the functional modification to cFont::CreateFont().
-
-+2015-01-18: Version 2.0.6 + backport of systemd support from versions 2.1.6 and 2.1.7
-+
-+- Added support for systemd (thanks to Christopher Reimer). To activate this you
-+ need to add "SDNOTIFY=1" to the 'make' call.
-+
-+2015-01-18: Version 2.0.6 + backport of reading command line arguments from files, from version 2.1$
-+
-+- VDR now reads command line options from *.conf files in /etc/vdr/conf.d (thanks
-+ to Lars Hanisch). See vdr.1 and vdr.5 for details.
-+
- 2015-01-20: Version 2.0.7
-
- - Fixed a possible division by zero in frame rate detection.
-diff -Naur vdr-2.0.7.orig/Make.config.template vdr-2.0.7/Make.config.template
---- vdr-2.0.7.orig/Make.config.template 2015-01-23 09:16:13.736620000 +0100
-+++ vdr-2.0.7/Make.config.template 2015-01-23 09:16:34.199618503 +0100
-@@ -38,6 +38,7 @@
-
- #VIDEODIR = /srv/vdr/video
- #CONFDIR = /var/lib/vdr
-+#ARGSDIR = /etc/vdr/conf.d
- #CACHEDIR = /var/cache/vdr
-
- # Overrides for preset/legacy configurations:
-diff -Naur vdr-2.0.7.orig/Makefile vdr-2.0.7/Makefile
---- vdr-2.0.7.orig/Makefile 2015-01-23 09:16:13.724620001 +0100
-+++ vdr-2.0.7/Makefile 2015-01-23 09:17:58.588612330 +0100
-@@ -31,6 +31,7 @@
- DESTDIR ?=
- VIDEODIR ?= /srv/vdr/video
- CONFDIR ?= /var/lib/vdr
-+ARGSDIR ?= /etc/vdr/conf.d
- CACHEDIR ?= /var/cache/vdr
-
- PREFIX ?= /usr/local
-@@ -66,7 +67,7 @@
-
- SILIB = $(LSIDIR)/libsi.a
-
--OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
-+OBJS = args.o audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
- dvbplayer.o dvbspu.o dvbsubtitle.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\
- lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o\
- receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o shutdown.o\
-@@ -111,12 +112,18 @@
- DEFINES += -DBIDI
- LIBS += $(shell pkg-config --libs fribidi)
- endif
-+ifdef SDNOTIFY
-+INCLUDES += $(shell pkg-config --cflags libsystemd-daemon)
-+DEFINES += -DSDNOTIFY
-+LIBS += $(shell pkg-config --libs libsystemd-daemon)
-+endif
-
- LIRC_DEVICE ?= /var/run/lirc/lircd
-
- DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\"
- DEFINES += -DVIDEODIR=\"$(VIDEODIR)\"
- DEFINES += -DCONFDIR=\"$(CONFDIR)\"
-+DEFINES += -DARGSDIR=\"$(ARGSDIR)\"
- DEFINES += -DCACHEDIR=\"$(CACHEDIR)\"
- DEFINES += -DRESDIR=\"$(RESDIR)\"
- DEFINES += -DPLUGINDIR=\"$(LIBDIR)\"
-@@ -161,6 +168,7 @@
- @echo "mandir=$(MANDIR)" >> $@
- @echo "configdir=$(CONFDIR)" >> $@
- @echo "videodir=$(VIDEODIR)" >> $@
-+ @echo "argsdir=$(ARGSDIR)" >> $@
- @echo "cachedir=$(CACHEDIR)" >> $@
- @echo "resdir=$(RESDIR)" >> $@
- @echo "libdir=$(LIBDIR)" >> $@
-@@ -278,6 +286,7 @@
- install-dirs:
- @mkdir -p $(DESTDIR)$(VIDEODIR)
- # @mkdir -p $(DESTDIR)$(CONFDIR)
-+ @mkdir -p $(DESTDIR)$(ARGSDIR)
- # @mkdir -p $(DESTDIR)$(CACHEDIR)
- @mkdir -p $(DESTDIR)$(RESDIR)
-
-diff -Naur vdr-2.0.7.orig/args.c vdr-2.0.7/args.c
---- vdr-2.0.7.orig/args.c 1970-01-01 01:00:00.000000000 +0100
-+++ vdr-2.0.7/args.c 2015-01-23 09:16:34.199618503 +0100
-@@ -0,0 +1,129 @@
-+/*
-+ * args.c: Read arguments from files
-+ *
-+ * See the main source file 'vdr.c' for copyright information and
-+ * how to reach the author.
-+ *
-+ * Original version written by Lars Hanisch <dvb@flensrocker.de>.
-+ *
-+ * $Id$
-+ */
-+
-+#include "args.h"
-+#include <unistd.h>
-+
-+cArgs::cArgs(const char *Argv0)
-+{
-+ argv0 = Argv0;
-+ argc = 0;
-+ argv = NULL;
-+}
-+
-+cArgs::~cArgs(void)
-+{
-+ if (argv != NULL)
-+ delete [] argv;
-+}
-+
-+bool cArgs::AddArg(const char *s)
-+{
-+ if (inVdrSection)
-+ args.Append(strdup(s));
-+ else if (*lastArg == NULL)
-+ return false;
-+ else
-+ lastArg = cString::sprintf("%s %s", *lastArg, s);
-+ return true;
-+}
-+
-+bool cArgs::ReadDirectory(const char *Directory)
-+{
-+ if (argv != NULL)
-+ delete [] argv;
-+ argc = 0;
-+ argv = NULL;
-+ args.Clear();
-+ lastArg = NULL;
-+ inVdrSection = false;
-+ cFileNameList files(Directory, false);
-+ if (files.Size() == 0)
-+ return false;
-+ for (int i = 0; i < files.Size(); i++) {
-+ const char *fileName = files.At(i);
-+ if (startswith(fileName, ".") || !endswith(fileName, ".conf"))
-+ continue;
-+ cString fullFileName = AddDirectory(Directory, fileName);
-+ struct stat fs;
-+ if ((access(*fullFileName, F_OK) != 0) || (stat(*fullFileName, &fs) != 0) || S_ISDIR(fs.st_mode))
-+ continue;
-+ bool ok = true;
-+ int line = 0;
-+ FILE *f = fopen(*fullFileName, "r");
-+ if (f) {
-+ char *s;
-+ cReadLine ReadLine;
-+ while ((s = ReadLine.Read(f)) != NULL) {
-+ line++;
-+ s = stripspace(skipspace(s));
-+ if (!isempty(s) && (s[0] != '#')) {
-+ if (startswith(s, "[") && endswith(s, "]")) {
-+ s[strlen(s) - 1] = 0;
-+ s++;
-+ if (*lastArg) {
-+ args.Append(strdup(*lastArg));
-+ lastArg = NULL;
-+ }
-+ if (strcmp(s, "vdr") == 0)
-+ inVdrSection = true;
-+ else {
-+ inVdrSection = false;
-+ lastArg = cString::sprintf("--plugin=%s", s);
-+ }
-+ }
-+ else {
-+ if ((strlen(s) > 2) && (s[0] == '-') && (s[1] != '-')) { // short option, split at first space
-+ char *p = strchr(s, ' ');
-+ if (p == NULL) {
-+ ok = AddArg(s);
-+ if (!ok)
-+ break;
-+ }
-+ else {
-+ *p = 0;
-+ p++;
-+ ok = AddArg(s);
-+ if (!ok)
-+ break;
-+ ok = AddArg(p);
-+ if (!ok)
-+ break;
-+ }
-+ }
-+ else {
-+ ok = AddArg(s);
-+ if (!ok)
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ fclose(f);
-+ }
-+ if (!ok) {
-+ esyslog("ERROR: args file %s, line %d", *fullFileName, line);
-+ return false;
-+ }
-+ }
-+ if (*lastArg) {
-+ args.Append(strdup(*lastArg));
-+ lastArg = NULL;
-+ }
-+ argv = new char*[args.Size() + 1];
-+ argv[0] = strdup(*argv0);
-+ argc = 1;
-+ for (int i = 0; i < args.Size(); i++) {
-+ argv[argc] = args.At(i);
-+ argc++;
-+ }
-+ return true;
-+}
-diff -Naur vdr-2.0.7.orig/args.h vdr-2.0.7/args.h
---- vdr-2.0.7.orig/args.h 1970-01-01 01:00:00.000000000 +0100
-+++ vdr-2.0.7/args.h 2015-01-23 09:16:34.199618503 +0100
-@@ -0,0 +1,34 @@
-+/*
-+ * args.h: Read arguments from files
-+ *
-+ * See the main source file 'vdr.c' for copyright information and
-+ * how to reach the author.
-+ *
-+ * Original version written by Lars Hanisch <dvb@flensrocker.de>.
-+ *
-+ * $Id$
-+ */
-+
-+#ifndef __ARGS_H
-+#define __ARGS_H
-+
-+#include "tools.h"
-+
-+class cArgs {
-+private:
-+ cString argv0;
-+ cStringList args;
-+ cString lastArg;
-+ bool inVdrSection;
-+ int argc;
-+ char **argv;
-+ bool AddArg(const char *s);
-+public:
-+ cArgs(const char *Argv0);
-+ ~cArgs(void);
-+ bool ReadDirectory(const char *Directory);
-+ int GetArgc(void) const { return argc; };
-+ char **GetArgv(void) const { return argv; };
-+ };
-+
-+#endif //__ARGS_H
-diff -Naur vdr-2.0.7.orig/interface.c vdr-2.0.7/interface.c
---- vdr-2.0.7.orig/interface.c 2015-01-23 09:16:13.725620001 +0100
-+++ vdr-2.0.7/interface.c 2015-01-23 09:16:34.199618503 +0100
-@@ -10,6 +10,9 @@
- #include "interface.h"
- #include <ctype.h>
- #include <stdlib.h>
-+#ifdef SDNOTIFY
-+#include <systemd/sd-daemon.h>
-+#endif
- #include <unistd.h>
- #include "i18n.h"
- #include "status.h"
-@@ -159,6 +162,9 @@
- bool known = Keys.KnowsRemote(Remote->Name());
- dsyslog("remote control %s - %s", Remote->Name(), known ? "keys known" : "learning keys");
- if (!known) {
-+#ifdef SDNOTIFY
-+ sd_notify(0, "READY=1\nSTATUS=Learning keys...");
-+#endif
- cSkinDisplayMenu *DisplayMenu = Skins.Current()->DisplayMenu();
- DisplayMenu->SetMenuCategory(mcUnknown);
- char Headline[256];
-diff -Naur vdr-2.0.7.orig/vdr.1 vdr-2.0.7/vdr.1
---- vdr-2.0.7.orig/vdr.1 2015-01-23 09:16:13.730620000 +0100
-+++ vdr-2.0.7/vdr.1 2015-01-23 09:16:34.200618503 +0100
-@@ -178,6 +178,10 @@
- Read resource files from \fIdir\fR
- (default is to read them from the config directory).
- .TP
-+.BI \-\-showargs[= dir ]
-+Read command line arguments from \fIdir\fR (default is \fI/etc/vdr/conf.d\fR),
-+display them to the console and exit.
-+.TP
- .BI \-s\ cmd ,\ \-\-shutdown= cmd
- Call \fIcmd\fR to shutdown the computer. See the file \fIINSTALL\fR for more
- information.
-@@ -213,6 +217,10 @@
- .BI \-w\ sec ,\ \-\-watchdog= sec
- Activate the watchdog timer with a timeout of \fIsec\fR seconds.
- A value of \fB0\fR (default) disables the watchdog.
-+.P
-+If started without any options, vdr tries to read command line options
-+from files named '*.conf' in the directory /etc/vdr/conf.d. Files are
-+read in alphabetical order. See vdr(5) for details.
- .SH SIGNALS
- .TP
- .B SIGINT, SIGTERM
-diff -Naur vdr-2.0.7.orig/vdr.5 vdr-2.0.7/vdr.5
---- vdr-2.0.7.orig/vdr.5 2015-01-23 09:16:13.732620000 +0100
-+++ vdr-2.0.7/vdr.5 2015-01-23 09:16:34.200618503 +0100
-@@ -895,6 +895,33 @@
- just 16 bit wide. The internal representation in VDR allows for 32 bit to
- be used, so that external tools can generate EPG data that is guaranteed
- not to collide with the ids of existing data.
-+.SS COMMANDLINE OPTIONS
-+If started without any options, vdr tries to read any files in the directory
-+/etc/vdr/conf.d with names that do not begin with a '.' and that end with '.conf'.
-+These files are read in alphabetical order. The format of these files is
-+
-+# comment
-+.br
-+[name]
-+.br
-+-a
-+.br
-+-b 123
-+.br
-+--long
-+.br
-+--longarg=123
-+.br
-+
-+Any lines that begin with '#' as the first non-whitespace character are considered
-+comments and are ignored.
-+A command line option file consists of one or more sections, indicated by '[name]',
-+where 'name' is either the fixed word 'vdr' (if this section contains options for
-+the main VDR program) or the name of the plugin this section applies to.
-+Each option must be written on a separate line, including the leading '-' (for
-+a short option) or '--' (for a long option). If the option has additional arguments,
-+they have to be written on the same line as the option itself, separated from the
-+option with a blank (short option) or equal sign (long option).
- .SH SEE ALSO
- .BR vdr (1)
- .SH AUTHOR
-diff -Naur vdr-2.0.7.orig/vdr.c vdr-2.0.7/vdr.c
---- vdr-2.0.7.orig/vdr.c 2015-01-23 09:16:13.732620000 +0100
-+++ vdr-2.0.7/vdr.c 2015-01-23 09:16:34.200618503 +0100
-@@ -34,8 +34,12 @@
- #include <stdlib.h>
- #include <sys/capability.h>
- #include <sys/prctl.h>
-+#ifdef SDNOTIFY
-+#include <systemd/sd-daemon.h>
-+#endif
- #include <termios.h>
- #include <unistd.h>
-+#include "args.h"
- #include "audio.h"
- #include "channels.h"
- #include "config.h"
-@@ -192,6 +196,7 @@
- #define DEFAULTWATCHDOG 0 // seconds
- #define DEFAULTVIDEODIR VIDEODIR
- #define DEFAULTCONFDIR dd(CONFDIR, VideoDirectory)
-+#define DEFAULTARGSDIR dd(ARGSDIR, "/etc/vdr/conf.d")
- #define DEFAULTCACHEDIR dd(CACHEDIR, VideoDirectory)
- #define DEFAULTRESDIR dd(RESDIR, ConfigDirectory)
- #define DEFAULTPLUGINDIR PLUGINDIR
-@@ -229,6 +234,15 @@
- VdrUser = VDR_USER;
- #endif
-
-+ cArgs *Args = NULL;
-+ if (argc == 1) {
-+ Args = new cArgs(argv[0]);
-+ if (Args->ReadDirectory(DEFAULTARGSDIR)) {
-+ argc = Args->GetArgc();
-+ argv = Args->GetArgv();
-+ }
-+ }
-+
- SetVideoDirectory(VideoDirectory);
- cPluginManager PluginManager(DEFAULTPLUGINDIR);
-
-@@ -256,6 +270,7 @@
- { "port", required_argument, NULL, 'p' },
- { "record", required_argument, NULL, 'r' },
- { "resdir", required_argument, NULL, 'r' | 0x100 },
-+ { "showargs", optional_argument, NULL, 's' | 0x200 },
- { "shutdown", required_argument, NULL, 's' },
- { "split", no_argument, NULL, 's' | 0x100 },
- { "terminal", required_argument, NULL, 't' },
-@@ -428,6 +443,19 @@
- case 's' | 0x100:
- Setup.SplitEditedFiles = 1;
- break;
-+ case 's' | 0x200: {
-+ const char *ArgsDir = optarg ? optarg : DEFAULTARGSDIR;
-+ cArgs Args(argv[0]);
-+ if (!Args.ReadDirectory(ArgsDir)) {
-+ fprintf(stderr, "vdr: can't read arguments from directory: %s\n", ArgsDir);
-+ return 2;
-+ }
-+ int c = Args.GetArgc();
-+ char **v = Args.GetArgv();
-+ for (int i = 1; i < c; i++)
-+ printf("%s\n", v[i]);
-+ return 0;
-+ }
- case 't': Terminal = optarg;
- if (access(Terminal, R_OK | W_OK) < 0) {
- fprintf(stderr, "vdr: can't access terminal: %s\n", Terminal);
-@@ -541,6 +569,8 @@
- " -s CMD, --shutdown=CMD call CMD to shutdown the computer\n"
- " --split split edited files at the editing marks (only\n"
- " useful in conjunction with --edit)\n"
-+ " --showargs[=DIR] print the arguments read from DIR and exit\n"
-+ " (default: %s)\n"
- " -t TTY, --terminal=TTY controlling tty\n"
- " -u USER, --user=USER run as user USER; only applicable if started as\n"
- " root\n"
-@@ -563,6 +593,7 @@
- DEFAULTLOCDIR,
- DEFAULTSVDRPPORT,
- DEFAULTRESDIR,
-+ DEFAULTARGSDIR,
- DEFAULTVIDEODIR,
- DEFAULTWATCHDOG
- );
-@@ -848,6 +879,10 @@
- alarm(WatchdogTimeout); // Initial watchdog timer start
- }
-
-+#ifdef SDNOTIFY
-+ sd_notify(0, "READY=1\nSTATUS=Ready");
-+#endif
-+
- // Main program loop:
-
- #define DELETE_MENU ((IsInfoMenu &= (Menu == NULL)), delete Menu, Menu = NULL)
diff --git a/media-video/vdr/files/vdr-2.0.7_systemd_argsdir_vanilla.patch b/media-video/vdr/files/vdr-2.0.7_systemd_argsdir_vanilla.patch
deleted file mode 100644
index f7bae16fdd40..000000000000
--- a/media-video/vdr/files/vdr-2.0.7_systemd_argsdir_vanilla.patch
+++ /dev/null
@@ -1,438 +0,0 @@
-diff -Naur vdr-2.0.7.orig/HISTORY vdr-2.0.7/HISTORY
---- vdr-2.0.7.orig/HISTORY 2015-01-23 09:07:52.777656645 +0100
-+++ vdr-2.0.7/HISTORY 2015-01-23 09:09:57.798647500 +0100
-@@ -7916,6 +7916,16 @@
- - The APIVERSION has been increased to 2.0.6 due to the changes to pat.h, sdt.h and
- the functional modification to cFont::CreateFont().
-
-+2015-01-18: Version 2.0.6 + backport of systemd support from versions 2.1.6 and 2.1.7
-+
-+- Added support for systemd (thanks to Christopher Reimer). To activate this you
-+ need to add "SDNOTIFY=1" to the 'make' call.
-+
-+2015-01-18: Version 2.0.6 + backport of reading command line arguments from files, from version 2.1$
-+
-+- VDR now reads command line options from *.conf files in /etc/vdr/conf.d (thanks
-+ to Lars Hanisch). See vdr.1 and vdr.5 for details.
-+
- 2015-01-20: Version 2.0.7
-
- - Fixed a possible division by zero in frame rate detection.
-diff -Naur vdr-2.0.7.orig/Make.config.template vdr-2.0.7/Make.config.template
---- vdr-2.0.7.orig/Make.config.template 2015-01-23 09:07:52.765656646 +0100
-+++ vdr-2.0.7/Make.config.template 2015-01-23 09:08:15.775654963 +0100
-@@ -38,6 +38,7 @@
-
- #VIDEODIR = /srv/vdr/video
- #CONFDIR = /var/lib/vdr
-+#ARGSDIR = /etc/vdr/conf.d
- #CACHEDIR = /var/cache/vdr
-
- # Overrides for preset/legacy configurations:
-diff -Naur vdr-2.0.7.orig/Makefile vdr-2.0.7/Makefile
---- vdr-2.0.7.orig/Makefile 2015-01-23 09:07:52.778656645 +0100
-+++ vdr-2.0.7/Makefile 2015-01-23 09:11:11.158642134 +0100
-@@ -31,6 +31,7 @@
- DESTDIR ?=
- VIDEODIR ?= /srv/vdr/video
- CONFDIR ?= /var/lib/vdr
-+ARGSDIR ?= /etc/vdr/conf.d
- CACHEDIR ?= /var/cache/vdr
-
- PREFIX ?= /usr/local
-@@ -66,7 +67,7 @@
-
- SILIB = $(LSIDIR)/libsi.a
-
--OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
-+OBJS = args.o audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o dvbci.o\
- dvbplayer.o dvbspu.o dvbsubtitle.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\
- lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o\
- receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o shutdown.o\
-@@ -93,12 +94,18 @@
- DEFINES += -DBIDI
- LIBS += $(shell pkg-config --libs fribidi)
- endif
-+ifdef SDNOTIFY
-+INCLUDES += $(shell pkg-config --cflags libsystemd-daemon)
-+DEFINES += -DSDNOTIFY
-+LIBS += $(shell pkg-config --libs libsystemd-daemon)
-+endif
-
- LIRC_DEVICE ?= /var/run/lirc/lircd
-
- DEFINES += -DLIRC_DEVICE=\"$(LIRC_DEVICE)\"
- DEFINES += -DVIDEODIR=\"$(VIDEODIR)\"
- DEFINES += -DCONFDIR=\"$(CONFDIR)\"
-+DEFINES += -DARGSDIR=\"$(ARGSDIR)\"
- DEFINES += -DCACHEDIR=\"$(CACHEDIR)\"
- DEFINES += -DRESDIR=\"$(RESDIR)\"
- DEFINES += -DPLUGINDIR=\"$(LIBDIR)\"
-@@ -143,6 +150,7 @@
- @echo "mandir=$(MANDIR)" >> $@
- @echo "configdir=$(CONFDIR)" >> $@
- @echo "videodir=$(VIDEODIR)" >> $@
-+ @echo "argsdir=$(ARGSDIR)" >> $@
- @echo "cachedir=$(CACHEDIR)" >> $@
- @echo "resdir=$(RESDIR)" >> $@
- @echo "libdir=$(LIBDIR)" >> $@
-@@ -260,6 +268,7 @@
- install-dirs:
- @mkdir -p $(DESTDIR)$(VIDEODIR)
- # @mkdir -p $(DESTDIR)$(CONFDIR)
-+ @mkdir -p $(DESTDIR)$(ARGSDIR)
- # @mkdir -p $(DESTDIR)$(CACHEDIR)
- @mkdir -p $(DESTDIR)$(RESDIR)
-
-diff -Naur vdr-2.0.7.orig/args.c vdr-2.0.7/args.c
---- vdr-2.0.7.orig/args.c 1970-01-01 01:00:00.000000000 +0100
-+++ vdr-2.0.7/args.c 2015-01-23 09:08:15.775654963 +0100
-@@ -0,0 +1,129 @@
-+/*
-+ * args.c: Read arguments from files
-+ *
-+ * See the main source file 'vdr.c' for copyright information and
-+ * how to reach the author.
-+ *
-+ * Original version written by Lars Hanisch <dvb@flensrocker.de>.
-+ *
-+ * $Id$
-+ */
-+
-+#include "args.h"
-+#include <unistd.h>
-+
-+cArgs::cArgs(const char *Argv0)
-+{
-+ argv0 = Argv0;
-+ argc = 0;
-+ argv = NULL;
-+}
-+
-+cArgs::~cArgs(void)
-+{
-+ if (argv != NULL)
-+ delete [] argv;
-+}
-+
-+bool cArgs::AddArg(const char *s)
-+{
-+ if (inVdrSection)
-+ args.Append(strdup(s));
-+ else if (*lastArg == NULL)
-+ return false;
-+ else
-+ lastArg = cString::sprintf("%s %s", *lastArg, s);
-+ return true;
-+}
-+
-+bool cArgs::ReadDirectory(const char *Directory)
-+{
-+ if (argv != NULL)
-+ delete [] argv;
-+ argc = 0;
-+ argv = NULL;
-+ args.Clear();
-+ lastArg = NULL;
-+ inVdrSection = false;
-+ cFileNameList files(Directory, false);
-+ if (files.Size() == 0)
-+ return false;
-+ for (int i = 0; i < files.Size(); i++) {
-+ const char *fileName = files.At(i);
-+ if (startswith(fileName, ".") || !endswith(fileName, ".conf"))
-+ continue;
-+ cString fullFileName = AddDirectory(Directory, fileName);
-+ struct stat fs;
-+ if ((access(*fullFileName, F_OK) != 0) || (stat(*fullFileName, &fs) != 0) || S_ISDIR(fs.st_mode))
-+ continue;
-+ bool ok = true;
-+ int line = 0;
-+ FILE *f = fopen(*fullFileName, "r");
-+ if (f) {
-+ char *s;
-+ cReadLine ReadLine;
-+ while ((s = ReadLine.Read(f)) != NULL) {
-+ line++;
-+ s = stripspace(skipspace(s));
-+ if (!isempty(s) && (s[0] != '#')) {
-+ if (startswith(s, "[") && endswith(s, "]")) {
-+ s[strlen(s) - 1] = 0;
-+ s++;
-+ if (*lastArg) {
-+ args.Append(strdup(*lastArg));
-+ lastArg = NULL;
-+ }
-+ if (strcmp(s, "vdr") == 0)
-+ inVdrSection = true;
-+ else {
-+ inVdrSection = false;
-+ lastArg = cString::sprintf("--plugin=%s", s);
-+ }
-+ }
-+ else {
-+ if ((strlen(s) > 2) && (s[0] == '-') && (s[1] != '-')) { // short option, split at first space
-+ char *p = strchr(s, ' ');
-+ if (p == NULL) {
-+ ok = AddArg(s);
-+ if (!ok)
-+ break;
-+ }
-+ else {
-+ *p = 0;
-+ p++;
-+ ok = AddArg(s);
-+ if (!ok)
-+ break;
-+ ok = AddArg(p);
-+ if (!ok)
-+ break;
-+ }
-+ }
-+ else {
-+ ok = AddArg(s);
-+ if (!ok)
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ fclose(f);
-+ }
-+ if (!ok) {
-+ esyslog("ERROR: args file %s, line %d", *fullFileName, line);
-+ return false;
-+ }
-+ }
-+ if (*lastArg) {
-+ args.Append(strdup(*lastArg));
-+ lastArg = NULL;
-+ }
-+ argv = new char*[args.Size() + 1];
-+ argv[0] = strdup(*argv0);
-+ argc = 1;
-+ for (int i = 0; i < args.Size(); i++) {
-+ argv[argc] = args.At(i);
-+ argc++;
-+ }
-+ return true;
-+}
-diff -Naur vdr-2.0.7.orig/args.h vdr-2.0.7/args.h
---- vdr-2.0.7.orig/args.h 1970-01-01 01:00:00.000000000 +0100
-+++ vdr-2.0.7/args.h 2015-01-23 09:08:15.775654963 +0100
-@@ -0,0 +1,34 @@
-+/*
-+ * args.h: Read arguments from files
-+ *
-+ * See the main source file 'vdr.c' for copyright information and
-+ * how to reach the author.
-+ *
-+ * Original version written by Lars Hanisch <dvb@flensrocker.de>.
-+ *
-+ * $Id$
-+ */
-+
-+#ifndef __ARGS_H
-+#define __ARGS_H
-+
-+#include "tools.h"
-+
-+class cArgs {
-+private:
-+ cString argv0;
-+ cStringList args;
-+ cString lastArg;
-+ bool inVdrSection;
-+ int argc;
-+ char **argv;
-+ bool AddArg(const char *s);
-+public:
-+ cArgs(const char *Argv0);
-+ ~cArgs(void);
-+ bool ReadDirectory(const char *Directory);
-+ int GetArgc(void) const { return argc; };
-+ char **GetArgv(void) const { return argv; };
-+ };
-+
-+#endif //__ARGS_H
-diff -Naur vdr-2.0.7.orig/interface.c vdr-2.0.7/interface.c
---- vdr-2.0.7.orig/interface.c 2015-01-23 09:07:52.765656646 +0100
-+++ vdr-2.0.7/interface.c 2015-01-23 09:08:15.775654963 +0100
-@@ -10,6 +10,9 @@
- #include "interface.h"
- #include <ctype.h>
- #include <stdlib.h>
-+#ifdef SDNOTIFY
-+#include <systemd/sd-daemon.h>
-+#endif
- #include <unistd.h>
- #include "i18n.h"
- #include "status.h"
-@@ -159,6 +162,9 @@
- bool known = Keys.KnowsRemote(Remote->Name());
- dsyslog("remote control %s - %s", Remote->Name(), known ? "keys known" : "learning keys");
- if (!known) {
-+#ifdef SDNOTIFY
-+ sd_notify(0, "READY=1\nSTATUS=Learning keys...");
-+#endif
- cSkinDisplayMenu *DisplayMenu = Skins.Current()->DisplayMenu();
- DisplayMenu->SetMenuCategory(mcUnknown);
- char Headline[256];
-diff -Naur vdr-2.0.7.orig/vdr.1 vdr-2.0.7/vdr.1
---- vdr-2.0.7.orig/vdr.1 2015-01-23 09:07:52.770656646 +0100
-+++ vdr-2.0.7/vdr.1 2015-01-23 09:08:15.776654963 +0100
-@@ -178,6 +178,10 @@
- Read resource files from \fIdir\fR
- (default is to read them from the config directory).
- .TP
-+.BI \-\-showargs[= dir ]
-+Read command line arguments from \fIdir\fR (default is \fI/etc/vdr/conf.d\fR),
-+display them to the console and exit.
-+.TP
- .BI \-s\ cmd ,\ \-\-shutdown= cmd
- Call \fIcmd\fR to shutdown the computer. See the file \fIINSTALL\fR for more
- information.
-@@ -213,6 +217,10 @@
- .BI \-w\ sec ,\ \-\-watchdog= sec
- Activate the watchdog timer with a timeout of \fIsec\fR seconds.
- A value of \fB0\fR (default) disables the watchdog.
-+.P
-+If started without any options, vdr tries to read command line options
-+from files named '*.conf' in the directory /etc/vdr/conf.d. Files are
-+read in alphabetical order. See vdr(5) for details.
- .SH SIGNALS
- .TP
- .B SIGINT, SIGTERM
-diff -Naur vdr-2.0.7.orig/vdr.5 vdr-2.0.7/vdr.5
---- vdr-2.0.7.orig/vdr.5 2015-01-23 09:07:52.772656646 +0100
-+++ vdr-2.0.7/vdr.5 2015-01-23 09:08:15.776654963 +0100
-@@ -889,6 +889,33 @@
- just 16 bit wide. The internal representation in VDR allows for 32 bit to
- be used, so that external tools can generate EPG data that is guaranteed
- not to collide with the ids of existing data.
-+.SS COMMANDLINE OPTIONS
-+If started without any options, vdr tries to read any files in the directory
-+/etc/vdr/conf.d with names that do not begin with a '.' and that end with '.conf'.
-+These files are read in alphabetical order. The format of these files is
-+
-+# comment
-+.br
-+[name]
-+.br
-+-a
-+.br
-+-b 123
-+.br
-+--long
-+.br
-+--longarg=123
-+.br
-+
-+Any lines that begin with '#' as the first non-whitespace character are considered
-+comments and are ignored.
-+A command line option file consists of one or more sections, indicated by '[name]',
-+where 'name' is either the fixed word 'vdr' (if this section contains options for
-+the main VDR program) or the name of the plugin this section applies to.
-+Each option must be written on a separate line, including the leading '-' (for
-+a short option) or '--' (for a long option). If the option has additional arguments,
-+they have to be written on the same line as the option itself, separated from the
-+option with a blank (short option) or equal sign (long option).
- .SH SEE ALSO
- .BR vdr (1)
- .SH AUTHOR
-diff -Naur vdr-2.0.7.orig/vdr.c vdr-2.0.7/vdr.c
---- vdr-2.0.7.orig/vdr.c 2015-01-23 09:07:52.772656646 +0100
-+++ vdr-2.0.7/vdr.c 2015-01-23 09:08:15.776654963 +0100
-@@ -34,8 +34,12 @@
- #include <stdlib.h>
- #include <sys/capability.h>
- #include <sys/prctl.h>
-+#ifdef SDNOTIFY
-+#include <systemd/sd-daemon.h>
-+#endif
- #include <termios.h>
- #include <unistd.h>
-+#include "args.h"
- #include "audio.h"
- #include "channels.h"
- #include "config.h"
-@@ -186,6 +190,7 @@
- #define DEFAULTWATCHDOG 0 // seconds
- #define DEFAULTVIDEODIR VIDEODIR
- #define DEFAULTCONFDIR dd(CONFDIR, VideoDirectory)
-+#define DEFAULTARGSDIR dd(ARGSDIR, "/etc/vdr/conf.d")
- #define DEFAULTCACHEDIR dd(CACHEDIR, VideoDirectory)
- #define DEFAULTRESDIR dd(RESDIR, ConfigDirectory)
- #define DEFAULTPLUGINDIR PLUGINDIR
-@@ -223,6 +228,15 @@
- VdrUser = VDR_USER;
- #endif
-
-+ cArgs *Args = NULL;
-+ if (argc == 1) {
-+ Args = new cArgs(argv[0]);
-+ if (Args->ReadDirectory(DEFAULTARGSDIR)) {
-+ argc = Args->GetArgc();
-+ argv = Args->GetArgv();
-+ }
-+ }
-+
- SetVideoDirectory(VideoDirectory);
- cPluginManager PluginManager(DEFAULTPLUGINDIR);
-
-@@ -250,6 +264,7 @@
- { "port", required_argument, NULL, 'p' },
- { "record", required_argument, NULL, 'r' },
- { "resdir", required_argument, NULL, 'r' | 0x100 },
-+ { "showargs", optional_argument, NULL, 's' | 0x200 },
- { "shutdown", required_argument, NULL, 's' },
- { "split", no_argument, NULL, 's' | 0x100 },
- { "terminal", required_argument, NULL, 't' },
-@@ -422,6 +437,19 @@
- case 's' | 0x100:
- Setup.SplitEditedFiles = 1;
- break;
-+ case 's' | 0x200: {
-+ const char *ArgsDir = optarg ? optarg : DEFAULTARGSDIR;
-+ cArgs Args(argv[0]);
-+ if (!Args.ReadDirectory(ArgsDir)) {
-+ fprintf(stderr, "vdr: can't read arguments from directory: %s\n", ArgsDir);
-+ return 2;
-+ }
-+ int c = Args.GetArgc();
-+ char **v = Args.GetArgv();
-+ for (int i = 1; i < c; i++)
-+ printf("%s\n", v[i]);
-+ return 0;
-+ }
- case 't': Terminal = optarg;
- if (access(Terminal, R_OK | W_OK) < 0) {
- fprintf(stderr, "vdr: can't access terminal: %s\n", Terminal);
-@@ -535,6 +563,8 @@
- " -s CMD, --shutdown=CMD call CMD to shutdown the computer\n"
- " --split split edited files at the editing marks (only\n"
- " useful in conjunction with --edit)\n"
-+ " --showargs[=DIR] print the arguments read from DIR and exit\n"
-+ " (default: %s)\n"
- " -t TTY, --terminal=TTY controlling tty\n"
- " -u USER, --user=USER run as user USER; only applicable if started as\n"
- " root\n"
-@@ -557,6 +587,7 @@
- DEFAULTLOCDIR,
- DEFAULTSVDRPPORT,
- DEFAULTRESDIR,
-+ DEFAULTARGSDIR,
- DEFAULTVIDEODIR,
- DEFAULTWATCHDOG
- );
-@@ -837,6 +868,10 @@
- alarm(WatchdogTimeout); // Initial watchdog timer start
- }
-
-+#ifdef SDNOTIFY
-+ sd_notify(0, "READY=1\nSTATUS=Ready");
-+#endif
-+
- // Main program loop:
-
- #define DELETE_MENU ((IsInfoMenu &= (Menu == NULL)), delete Menu, Menu = NULL)