mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
Revert "media-video/vdr: cleanup old"
This reverts commit 99d096c75c.
media-video/vdr-2* still required by media-plugins/vdr-pvr350.
This commit is contained in:
@@ -1,2 +1,5 @@
|
||||
DIST extpng-vdr-2.0.6-gentoo-edition-v6.patch.bz2 69472 BLAKE2B 60669e9c20b2bd573eb05733bbf9548d2e643b36693be8b15a377b38470708a71b29e2a16baf7ed378132265f814ec9d35dae749ccf6ae204cd9beb787dc8f57 SHA512 f4ecb786ec5a026fa75fcf539518e80273bf43fc325c13a380c70eb85351910efa991b3ee71ca477e597bc2b4598a18620b6cf00fc02714acfcc4e6112d84b6c
|
||||
DIST extpng-vdr-2.2.0-gentoo-edition-v1.patch.bz2 34664 BLAKE2B 81b68ebe0ef4588c3676f0b7a2c766d8d4d4f754a987b3be5868f3c6eff9158d4cea8e492ca81df535e637dbdc5baff638d1fafb4163e9d9a2d0125aba17e2e1 SHA512 16d6fbb8201f003dfe653b6a49424b794d7e697e27ad6f2383dbe17b76712ea5a3da88a676900b84d75ff7425bf3eb9084d60a89a4598758f482dc1f013f7b3e
|
||||
DIST vdr-2.0.6.tar.bz2 839575 BLAKE2B 40de46d8465b7008bc29c7e2c1c241d4114aa3d62aa6a0acd81636133c295cd87c2fc618e725885c98f47445220e897c23188373457a96b51cf832ca417c9842 SHA512 070ebbfb85478887088567872a71744305dbf9c75de8b095a8fe46d883b0b4fe140539caeb2243715f42793a45790a127542655f549f7ea3cb71c4f9912fa07d
|
||||
DIST vdr-2.0.7.tar.bz2 841511 BLAKE2B bde06dd038ea2ebfa8768742c02bc7046448ade29032a90130f721af1c4c5d2301ff52065a04c51b31f14250d8ae252d796d93e3012ea1057f2359b1ef9c327c SHA512 cba35f62162cd681179872915023890f492e95cc94d65aadd3cb4d03d7e3c7e2f197e7f35149cdf872169af35c2b841e1042e054f28164860b7cea8367793ce0
|
||||
DIST vdr-2.2.0.tar.bz2 922708 BLAKE2B 975e07d6d4c5bd13ee92be5d6a1826d6404b0c59e20fa2e30689b185a61e02d54782ad528e6a4f15e0d36806b30bcf48aa336d63adb3604e78056ff318e0fd2c SHA512 183f58133915c6c0fe8ec2b88becbcb2a36418210e6dcf7931053d3771d727c3581593f9eb5c9693abf39e22e728f7b41c42079cd704610c3636ec05134ea93d
|
||||
|
||||
68
media-video/vdr/files/vdr-2.0.6_gentoo.patch
Normal file
68
media-video/vdr/files/vdr-2.0.6_gentoo.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
diff -Naur vdr-2.0.6.orig/Makefile vdr-2.0.6/Makefile
|
||||
--- vdr-2.0.6.orig/Makefile 2014-09-22 22:17:23.000000000 +0200
|
||||
+++ vdr-2.0.6/Makefile 2014-09-24 15:22:43.000000000 +0200
|
||||
@@ -109,7 +109,7 @@
|
||||
VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
|
||||
APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
|
||||
|
||||
-all: vdr i18n plugins
|
||||
+all: vdr i18n
|
||||
|
||||
# Implicit rules:
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
PODIR = po
|
||||
LOCALEDIR = locale
|
||||
-I18Npo = $(wildcard $(PODIR)/*.po)
|
||||
+I18Npo = $(foreach dir,$(LINGUAS),$(wildcard $(PODIR)/$(dir)*.po))
|
||||
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
|
||||
I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr.mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
|
||||
I18Npot = $(PODIR)/vdr.pot
|
||||
@@ -185,7 +185,7 @@
|
||||
|
||||
install-i18n: i18n
|
||||
@mkdir -p $(DESTDIR)$(LOCDIR)
|
||||
- cp -r $(LOCALEDIR)/* $(DESTDIR)$(LOCDIR)
|
||||
+ @(cd $(LOCALEDIR); for linguas in $(LINGUAS); do [ "$$linguas" = "en" ] && continue; cp -r --parents $$linguas* $(DESTDIR)$(LOCDIR); done)
|
||||
|
||||
# The 'include' directory (for plugins):
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
|
||||
# Install the files (note that 'install-pc' must be first!):
|
||||
|
||||
-install: install-pc install-bin install-dirs install-conf install-doc install-plugins install-i18n install-includes
|
||||
+install: install-pc install-bin install-dirs install-conf install-doc install-i18n install-includes
|
||||
|
||||
# VDR binary:
|
||||
|
||||
@@ -259,11 +259,12 @@
|
||||
|
||||
install-dirs:
|
||||
@mkdir -p $(DESTDIR)$(VIDEODIR)
|
||||
- @mkdir -p $(DESTDIR)$(CONFDIR)
|
||||
- @mkdir -p $(DESTDIR)$(CACHEDIR)
|
||||
+# @mkdir -p $(DESTDIR)$(CONFDIR)
|
||||
+# @mkdir -p $(DESTDIR)$(CACHEDIR)
|
||||
@mkdir -p $(DESTDIR)$(RESDIR)
|
||||
|
||||
install-conf:
|
||||
+ @mkdir -p $(DESTDIR)$(CONFDIR)
|
||||
@cp -pn *.conf $(DESTDIR)$(CONFDIR)
|
||||
|
||||
# Documentation:
|
||||
@@ -290,8 +291,11 @@
|
||||
# Includes:
|
||||
|
||||
install-includes: include-dir
|
||||
- @mkdir -p $(DESTDIR)$(INCDIR)
|
||||
- @cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
|
||||
+# @mkdir -p $(DESTDIR)$(INCDIR)
|
||||
+# @cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
|
||||
+ @mkdir -p $(DESTDIR)$(INCDIR)/vdr $(DESTDIR)$(INCDIR)/vdr/libsi
|
||||
+ @cp -pLR include/vdr $(DESTDIR)$(INCDIR)
|
||||
+ @cp -pLR include/libsi Make.config $(DESTDIR)$(INCDIR)/vdr
|
||||
|
||||
# pkg-config file:
|
||||
|
||||
438
media-video/vdr/files/vdr-2.0.7_systemd_argsdir.patch
Normal file
438
media-video/vdr/files/vdr-2.0.7_systemd_argsdir.patch
Normal file
@@ -0,0 +1,438 @@
|
||||
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)
|
||||
438
media-video/vdr/files/vdr-2.0.7_systemd_argsdir_vanilla.patch
Normal file
438
media-video/vdr/files/vdr-2.0.7_systemd_argsdir_vanilla.patch
Normal file
@@ -0,0 +1,438 @@
|
||||
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)
|
||||
@@ -8,16 +8,25 @@
|
||||
<use>
|
||||
<flag name="alternatechannel">Use alternate channel on record</flag>
|
||||
<flag name="bidi">fribidi support, for languages, written from right to left</flag>
|
||||
<flag name="ddepgentry">remove duplicate EPG entries</flag>
|
||||
<flag name="dvlvidprefer">controls video-dir choice on recording</flag>
|
||||
<flag name="graphtft">support for vdr-graphtft plugin up from version 0.1.7</flag>
|
||||
<flag name="html">Install HTML documentation</flag>
|
||||
<flag name="jumpplay">Enables automatic jumping over cut marks while watching a recording</flag>
|
||||
<flag name="jumpingseconds">skip seconds in played records</flag>
|
||||
<flag name="kbd">enable keyboard support as remote device</flag>
|
||||
<flag name="mainmenuhooks">Allows to replace main menu entries by some special plugins (like epgsearch, extrecmenu, ...)</flag>
|
||||
<flag name="menuorg">Enables support for the <pkg>media-plugins/vdr-menuorg</pkg></flag>
|
||||
<flag name="menuselection">adds support for menu hotkeys of double digits</flag>
|
||||
<flag name="naludump">Removes NALU fill data from h.264-Streams of TS files</flag>
|
||||
<flag name="permashift">permanent timeshift by recording live TV on hard disk, need plugin <pkg>media-plugins/vdr-permashift</pkg></flag>
|
||||
<flag name="permashift_v1">permanent timeshift by recording live TV on RAM, need plugin >=mediaplugins/vdr-permashift-1</flag>
|
||||
<flag name="pinplugin">Support for <pkg>media-plugins/vdr-pin</pkg></flag>
|
||||
<flag name="resumereset">rreset resume of EOF</flag>
|
||||
<flag name="rotor">Enable support for plugin <pkg>media-plugins/vdr-rotor</pkg> for dish-positioner.</flag>
|
||||
<flag name="ttxtsubs">support for <pkg>media-plugins/vdr-ttxtsubs</pkg></flag>
|
||||
<flag name="vasarajanauloja">replacement for the liemikuutio patch, adds some nice must haves features</flag>
|
||||
<flag name="wareagleicon">Replace original icon set in menu</flag>
|
||||
<flag name="yaepg">Enables support for the vdr-yaepg plugin</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
277
media-video/vdr/vdr-2.0.6-r1.ebuild
Normal file
277
media-video/vdr/vdr-2.0.6-r1.ebuild
Normal file
@@ -0,0 +1,277 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib toolchain-funcs
|
||||
|
||||
# Switches supported by extensions-patch
|
||||
EXT_PATCH_FLAGS="alternatechannel ddepgentry dvlvidprefer graphtft
|
||||
jumpplay jumpingseconds mainmenuhooks menuorg naludump permashift permashift_v1
|
||||
pinplugin rotor ttxtsubs vasarajanauloja wareagleicon yaepg"
|
||||
|
||||
# names of the use-flags
|
||||
EXT_PATCH_FLAGS_RENAMED=""
|
||||
|
||||
# names ext-patch uses internally, here only used for maintainer checks
|
||||
EXT_PATCH_FLAGS_RENAMED_EXT_NAME=""
|
||||
|
||||
IUSE="bidi debug html vanilla ${EXT_PATCH_FLAGS} ${EXT_PATCH_FLAGS_RENAMED}"
|
||||
|
||||
MY_PV="${PV%_p*}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
EXT_P="extpng-${P}-gentoo-edition-v6"
|
||||
|
||||
DESCRIPTION="Video Disk Recorder - turns a pc into a powerful set top box for DVB"
|
||||
HOMEPAGE="http://www.tvdr.de/"
|
||||
SRC_URI="ftp://ftp.tvdr.de/vdr/${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~hd_brummy/distfiles/${EXT_P}.patch.bz2"
|
||||
|
||||
KEYWORDS="amd64 ~arm ~ppc x86"
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2"
|
||||
|
||||
REQUIRED_USE="
|
||||
permashift? ( !permashift_v1 )
|
||||
permashift_v1? ( !permashift )"
|
||||
|
||||
COMMON_DEPEND="virtual/jpeg:*
|
||||
sys-libs/libcap
|
||||
>=media-libs/fontconfig-2.4.2
|
||||
>=media-libs/freetype-2"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=virtual/linuxtv-dvb-headers-5.3
|
||||
sys-devel/gettext"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
dev-lang/perl
|
||||
>=media-tv/gentoo-vdr-scripts-2.5_rc1
|
||||
media-fonts/corefonts
|
||||
bidi? ( dev-libs/fribidi )"
|
||||
|
||||
CONF_DIR=/etc/vdr
|
||||
CAP_FILE=${S}/capabilities.sh
|
||||
CAPS="# Capabilities of the vdr-executable for use by startscript etc."
|
||||
|
||||
pkg_setup() {
|
||||
use debug && append-flags -g
|
||||
|
||||
PLUGIN_LIBDIR="/usr/$(get_libdir)/vdr/plugins"
|
||||
|
||||
tc-export CC CXX AR
|
||||
}
|
||||
|
||||
add_cap() {
|
||||
local arg
|
||||
for arg; do
|
||||
CAPS="${CAPS}\n${arg}=1"
|
||||
done
|
||||
}
|
||||
|
||||
enable_patch() {
|
||||
local arg ARG_UPPER
|
||||
for arg; do
|
||||
ARG_UPPER=$(echo $arg|tr '[:lower:]' '[:upper:]')
|
||||
echo "${ARG_UPPER} = 1" >> Make.config
|
||||
|
||||
# codesnippet to bring the extpng defines into the vdr.pc CXXFLAGS CFLAGS
|
||||
echo "-DUSE_${ARG_UPPER}" >> "${T}"/defines.tmp
|
||||
cat "${T}"/defines.tmp | tr \\\012 ' ' > "${T}"/defines.IUSE
|
||||
export DEFINES_IUSE=$( cat ${T}/defines.IUSE )
|
||||
done
|
||||
}
|
||||
|
||||
extensions_add_make_conf()
|
||||
{
|
||||
# copy all ifdef for extensions-patch to Make.config
|
||||
sed -e '1,/need to touch the following:/d' \
|
||||
-e '/need to touch the following/,/^$/d' \
|
||||
Make.config.template >> Make.config
|
||||
}
|
||||
|
||||
extensions_all_defines() {
|
||||
# extract all possible settings for extensions-patch
|
||||
sed -e '/^#\?[A-Z].*= 1/!d' -e 's/^#\?//' -e 's/ .*//' \
|
||||
Make.config.template \
|
||||
| sort \
|
||||
| tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
|
||||
lang_po() {
|
||||
LING_PO=$( ls ${S}/po | sed -e "s:.po::g" | cut -d_ -f1 | tr \\\012 ' ' )
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# apply maintainace-patches
|
||||
ebegin "Changing paths for gentoo"
|
||||
|
||||
local DVBDIR=/usr/include
|
||||
local i
|
||||
for i in ${DVB_HEADER_PATH} /usr/include/v4l-dvb-hg /usr/include; do
|
||||
[[ -d ${i} ]] || continue
|
||||
if [[ -f ${i}/linux/dvb/dmx.h ]]; then
|
||||
einfo "Found DVB header files in ${i}"
|
||||
DVBDIR=${i}
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# checking for s2api headers
|
||||
local api_version
|
||||
api_version=$(awk -F' ' '/define DVB_API_VERSION / {print $3}' "${DVBDIR}"/linux/dvb/version.h)
|
||||
api_version=${api_version}*$(awk -F' ' '/define DVB_API_VERSION_MINOR / {print $3}' "${DVBDIR}"/linux/dvb/version.h)
|
||||
|
||||
if [[ ${api_version:-0} -lt 5*3 ]]; then
|
||||
eerror "DVB header files do not contain s2api support or too old for ${P}"
|
||||
eerror "You cannot compile VDR against old dvb-header"
|
||||
die "DVB headers too old"
|
||||
fi
|
||||
|
||||
cat > Make.config <<-EOT
|
||||
#
|
||||
# Generated by ebuild ${PF}
|
||||
#
|
||||
PREFIX = /usr
|
||||
DVBDIR = ${DVBDIR}
|
||||
PLUGINLIBDIR = ${PLUGIN_LIBDIR}
|
||||
CONFDIR = ${CONF_DIR}
|
||||
VIDEODIR = /var/vdr/video
|
||||
LOCDIR = \$(PREFIX)/share/locale
|
||||
INCDIR = \$(PREFIX)/include
|
||||
|
||||
DEFINES += -DCONFDIR=\"\$(CONFDIR)\"
|
||||
INCLUDES += -I\$(DVBDIR)
|
||||
|
||||
# >=vdr-1.7.36-r1; parameter only used for compiletime on vdr
|
||||
# PLUGINLIBDIR (plugin Makefile old) = LIBDIR (plugin Makefile new)
|
||||
LIBDIR = ${PLUGIN_LIBDIR}
|
||||
PCDIR = /usr/$(get_libdir)/pkgconfig
|
||||
EOT
|
||||
eend 0
|
||||
|
||||
# support languages, written from right to left
|
||||
BUILD_PARAMS+=" BIDI=$(usex bidi 1 0)"
|
||||
|
||||
epatch "${FILESDIR}/${PN}-2.0.6_gentoo.patch"
|
||||
|
||||
if ! use vanilla; then
|
||||
|
||||
# Now apply extensions patch
|
||||
epatch "${WORKDIR}/${EXT_P}.patch"
|
||||
|
||||
# This allows us to start even if some plugin does not exist
|
||||
# or is not loadable.
|
||||
enable_patch PLUGINMISSING
|
||||
enable_patch CHANNELBIND
|
||||
|
||||
if [[ -n ${VDR_MAINTAINER_MODE} ]]; then
|
||||
einfo "Doing maintainer checks:"
|
||||
|
||||
# we do not support these patches
|
||||
# (or have them already hard enabled)
|
||||
local IGNORE_PATCHES="pluginmissing channelbind"
|
||||
|
||||
extensions_all_defines > "${T}"/new.IUSE
|
||||
echo $EXT_PATCH_FLAGS $EXT_PATCH_FLAGS_RENAMED_EXT_NAME \
|
||||
$IGNORE_PATCHES | \
|
||||
tr ' ' '\n' |sort > "${T}"/old.IUSE
|
||||
local DIFFS=$(diff -u "${T}"/old.IUSE "${T}"/new.IUSE|grep '^[+-][^+-]')
|
||||
if [[ -z ${DIFFS} ]]; then
|
||||
einfo "EXT_PATCH_FLAGS is up to date."
|
||||
else
|
||||
ewarn "IUSE differences!"
|
||||
local diff
|
||||
for diff in $DIFFS; do
|
||||
ewarn "$diff"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
ebegin "Enabling selected patches"
|
||||
local flag
|
||||
for flag in $EXT_PATCH_FLAGS; do
|
||||
use $flag && enable_patch ${flag}
|
||||
done
|
||||
|
||||
eend 0
|
||||
|
||||
extensions_add_make_conf
|
||||
|
||||
# add defined use-flags compile options to vdr.pc
|
||||
sed -e "s:\$(CDEFINES) \$(CINCLUDES) \$(HDRDIR):\$(CDEFINES) \$(CINCLUDES) \$(HDRDIR) \$(DEFINES_IUSE):" \
|
||||
-i Makefile
|
||||
|
||||
ebegin "Make depend"
|
||||
emake .dependencies >/dev/null
|
||||
eend $? "make depend failed"
|
||||
fi
|
||||
|
||||
epatch_user
|
||||
|
||||
add_cap CAP_UTF8
|
||||
|
||||
add_cap CAP_IRCTRL_RUNTIME_PARAM \
|
||||
CAP_VFAT_RUNTIME_PARAM \
|
||||
CAP_CHUID \
|
||||
CAP_SHUTDOWN_AUTO_RETRY
|
||||
|
||||
echo -e ${CAPS} > "${CAP_FILE}"
|
||||
|
||||
# LINGUAS support
|
||||
einfo "\n \t VDR supports the LINGUAS values"
|
||||
|
||||
lang_po
|
||||
|
||||
einfo "\t Please set one of this values in your sytem make.conf"
|
||||
einfo "\t LINGUAS=\"${LING_PO}\"\n"
|
||||
|
||||
if [[ -z ${LINGUAS} ]]; then
|
||||
einfo "\n \t No values in LINGUAS="
|
||||
einfo "\t You will get only english text on OSD \n"
|
||||
fi
|
||||
|
||||
strip-linguas ${LING_PO} en
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# # trick makefile not to create a videodir by supplying it with an existing
|
||||
# # directory
|
||||
emake \
|
||||
VIDEODIR="/" \
|
||||
DESTDIR="${D}" install || die "emake install failed"
|
||||
|
||||
keepdir "${PLUGIN_LIBDIR}"
|
||||
|
||||
keepdir "${CONF_DIR}"/plugins
|
||||
keepdir "${CONF_DIR}"/themes
|
||||
|
||||
if use html; then
|
||||
dohtml *.html
|
||||
fi
|
||||
|
||||
dodoc MANUAL INSTALL README* HISTORY CONTRIBUTORS
|
||||
|
||||
insinto /usr/share/vdr
|
||||
doins "${CAP_FILE}"
|
||||
|
||||
if use alternatechannel; then
|
||||
insinto /etc/vdr
|
||||
doins "${FILESDIR}"/channel_alternative.conf
|
||||
fi
|
||||
|
||||
chown -R vdr:vdr "${D}/${CONF_DIR}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "It is a good idea to run vdrplugin-rebuild now."
|
||||
|
||||
elog "To get nice symbols in OSD we recommend to install"
|
||||
elog "\t1. emerge media-fonts/vdrsymbols-ttf"
|
||||
elog "\t2. select font VDRSymbolsSans in Setup"
|
||||
elog ""
|
||||
elog "To get an idea how to proceed now, have a look at our vdr-guide:"
|
||||
elog "\thttps://wiki.gentoo.org/wiki/VDR"
|
||||
}
|
||||
288
media-video/vdr/vdr-2.0.7.ebuild
Normal file
288
media-video/vdr/vdr-2.0.7.ebuild
Normal file
@@ -0,0 +1,288 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils flag-o-matic multilib toolchain-funcs
|
||||
|
||||
# Switches supported by extensions-patch
|
||||
EXT_PATCH_FLAGS="alternatechannel ddepgentry dvlvidprefer graphtft
|
||||
jumpplay jumpingseconds mainmenuhooks menuorg naludump permashift permashift_v1
|
||||
pinplugin rotor ttxtsubs vasarajanauloja wareagleicon yaepg"
|
||||
|
||||
# names of the use-flags
|
||||
EXT_PATCH_FLAGS_RENAMED=""
|
||||
|
||||
# names ext-patch uses internally, here only used for maintainer checks
|
||||
EXT_PATCH_FLAGS_RENAMED_EXT_NAME=""
|
||||
|
||||
IUSE="bidi debug html systemd vanilla ${EXT_PATCH_FLAGS} ${EXT_PATCH_FLAGS_RENAMED}"
|
||||
|
||||
MY_PV="${PV%_p*}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
EXT_P="extpng-${PN}-2.0.6-gentoo-edition-v6"
|
||||
|
||||
DESCRIPTION="Video Disk Recorder - turns a pc into a powerful set top box for DVB"
|
||||
HOMEPAGE="http://www.tvdr.de/"
|
||||
SRC_URI="ftp://ftp.tvdr.de/vdr/${MY_P}.tar.bz2
|
||||
https://dev.gentoo.org/~hd_brummy/distfiles/${EXT_P}.patch.bz2"
|
||||
|
||||
KEYWORDS="~arm ~amd64 ~ppc ~x86"
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2"
|
||||
|
||||
REQUIRED_USE="
|
||||
permashift? ( !permashift_v1 )
|
||||
permashift_v1? ( !permashift )"
|
||||
|
||||
COMMON_DEPEND="virtual/jpeg:*
|
||||
sys-libs/libcap
|
||||
>=media-libs/fontconfig-2.4.2
|
||||
>=media-libs/freetype-2"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=virtual/linuxtv-dvb-headers-5.3
|
||||
sys-devel/gettext"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
dev-lang/perl
|
||||
>=media-tv/gentoo-vdr-scripts-2.5
|
||||
media-fonts/corefonts
|
||||
bidi? ( dev-libs/fribidi )
|
||||
systemd? ( sys-apps/systemd )"
|
||||
|
||||
CONF_DIR=/etc/vdr
|
||||
CAP_FILE=${S}/capabilities.sh
|
||||
CAPS="# Capabilities of the vdr-executable for use by startscript etc."
|
||||
|
||||
pkg_setup() {
|
||||
use debug && append-flags -g
|
||||
|
||||
PLUGIN_LIBDIR="/usr/$(get_libdir)/vdr/plugins"
|
||||
|
||||
tc-export CC CXX AR
|
||||
}
|
||||
|
||||
add_cap() {
|
||||
local arg
|
||||
for arg; do
|
||||
CAPS="${CAPS}\n${arg}=1"
|
||||
done
|
||||
}
|
||||
|
||||
enable_patch() {
|
||||
local arg ARG_UPPER
|
||||
for arg; do
|
||||
ARG_UPPER=$(echo $arg|tr '[:lower:]' '[:upper:]')
|
||||
echo "${ARG_UPPER} = 1" >> Make.config
|
||||
|
||||
# codesnippet to bring the extpng defines into the vdr.pc CXXFLAGS CFLAGS
|
||||
echo "-DUSE_${ARG_UPPER}" >> "${T}"/defines.tmp
|
||||
cat "${T}"/defines.tmp | tr \\\012 ' ' > "${T}"/defines.IUSE
|
||||
export DEFINES_IUSE=$( cat ${T}/defines.IUSE )
|
||||
done
|
||||
}
|
||||
|
||||
extensions_add_make_conf()
|
||||
{
|
||||
# copy all ifdef for extensions-patch to Make.config
|
||||
sed -e '1,/need to touch the following:/d' \
|
||||
-e '/need to touch the following/,/^$/d' \
|
||||
Make.config.template >> Make.config
|
||||
}
|
||||
|
||||
extensions_all_defines() {
|
||||
# extract all possible settings for extensions-patch
|
||||
sed -e '/^#\?[A-Z].*= 1/!d' -e 's/^#\?//' -e 's/ .*//' \
|
||||
Make.config.template \
|
||||
| sort \
|
||||
| tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
|
||||
lang_po() {
|
||||
LING_PO=$( ls ${S}/po | sed -e "s:.po::g" | cut -d_ -f1 | tr \\\012 ' ' )
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# apply maintainace-patches
|
||||
ebegin "Changing paths for gentoo"
|
||||
|
||||
local DVBDIR=/usr/include
|
||||
local i
|
||||
for i in ${DVB_HEADER_PATH} /usr/include/v4l-dvb-hg /usr/include; do
|
||||
[[ -d ${i} ]] || continue
|
||||
if [[ -f ${i}/linux/dvb/dmx.h ]]; then
|
||||
einfo "Found DVB header files in ${i}"
|
||||
DVBDIR=${i}
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# checking for s2api headers
|
||||
local api_version
|
||||
api_version=$(awk -F' ' '/define DVB_API_VERSION / {print $3}' "${DVBDIR}"/linux/dvb/version.h)
|
||||
api_version=${api_version}*$(awk -F' ' '/define DVB_API_VERSION_MINOR / {print $3}' "${DVBDIR}"/linux/dvb/version.h)
|
||||
|
||||
if [[ ${api_version:-0} -lt 5*3 ]]; then
|
||||
eerror "DVB header files do not contain s2api support or too old for ${P}"
|
||||
eerror "You cannot compile VDR against old dvb-header"
|
||||
die "DVB headers too old"
|
||||
fi
|
||||
|
||||
cat > Make.config <<-EOT
|
||||
#
|
||||
# Generated by ebuild ${PF}
|
||||
#
|
||||
PREFIX = /usr
|
||||
DVBDIR = ${DVBDIR}
|
||||
PLUGINLIBDIR = ${PLUGIN_LIBDIR}
|
||||
CONFDIR = ${CONF_DIR}
|
||||
VIDEODIR = /var/vdr/video
|
||||
LOCDIR = \$(PREFIX)/share/locale
|
||||
INCDIR = \$(PREFIX)/include
|
||||
|
||||
DEFINES += -DCONFDIR=\"\$(CONFDIR)\"
|
||||
INCLUDES += -I\$(DVBDIR)
|
||||
|
||||
# >=vdr-1.7.36-r1; parameter only used for compiletime on vdr
|
||||
# PLUGINLIBDIR (plugin Makefile old) = LIBDIR (plugin Makefile new)
|
||||
LIBDIR = ${PLUGIN_LIBDIR}
|
||||
PCDIR = /usr/$(get_libdir)/pkgconfig
|
||||
EOT
|
||||
eend 0
|
||||
|
||||
# support languages, written from right to left
|
||||
BUILD_PARAMS+=" BIDI=$(usex bidi 1 0)"
|
||||
|
||||
# systemd support
|
||||
use systemd && BUILD_PARAMS+=" SDNOTIFY=$(usex systemd 1 0)"
|
||||
|
||||
if ! use vanilla; then
|
||||
|
||||
# Now apply extensions patch
|
||||
epatch "${WORKDIR}/${EXT_P}.patch"
|
||||
|
||||
# This allows us to start even if some plugin does not exist
|
||||
# or is not loadable.
|
||||
enable_patch PLUGINMISSING
|
||||
enable_patch CHANNELBIND
|
||||
|
||||
if [[ -n ${VDR_MAINTAINER_MODE} ]]; then
|
||||
einfo "Doing maintainer checks:"
|
||||
|
||||
# we do not support these patches
|
||||
# (or have them already hard enabled)
|
||||
local IGNORE_PATCHES="pluginmissing channelbind"
|
||||
|
||||
extensions_all_defines > "${T}"/new.IUSE
|
||||
echo $EXT_PATCH_FLAGS $EXT_PATCH_FLAGS_RENAMED_EXT_NAME \
|
||||
$IGNORE_PATCHES | \
|
||||
tr ' ' '\n' |sort > "${T}"/old.IUSE
|
||||
local DIFFS=$(diff -u "${T}"/old.IUSE "${T}"/new.IUSE|grep '^[+-][^+-]')
|
||||
if [[ -z ${DIFFS} ]]; then
|
||||
einfo "EXT_PATCH_FLAGS is up to date."
|
||||
else
|
||||
ewarn "IUSE differences!"
|
||||
local diff
|
||||
for diff in $DIFFS; do
|
||||
ewarn "$diff"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
ebegin "Enabling selected patches"
|
||||
local flag
|
||||
for flag in $EXT_PATCH_FLAGS; do
|
||||
use $flag && enable_patch ${flag}
|
||||
done
|
||||
|
||||
eend 0
|
||||
|
||||
extensions_add_make_conf
|
||||
|
||||
# add defined use-flags compile options to vdr.pc
|
||||
sed -e "s:\$(CDEFINES) \$(CINCLUDES) \$(HDRDIR):\$(CDEFINES) \$(CINCLUDES) \$(HDRDIR) \$(DEFINES_IUSE):" \
|
||||
-i Makefile
|
||||
|
||||
ebegin "Make depend"
|
||||
emake .dependencies >/dev/null
|
||||
eend $? "make depend failed"
|
||||
fi
|
||||
|
||||
epatch "${FILESDIR}/${PN}-2.0.6-r2_gentoo.patch"
|
||||
|
||||
# backport from vdr-2.1.7 for better systemd support
|
||||
if use vanilla; then
|
||||
epatch "${FILESDIR}/${P}_systemd_argsdir_vanilla.patch"
|
||||
else
|
||||
epatch "${FILESDIR}/${P}_systemd_argsdir.patch"
|
||||
fi
|
||||
|
||||
epatch_user
|
||||
|
||||
add_cap CAP_UTF8
|
||||
|
||||
add_cap CAP_IRCTRL_RUNTIME_PARAM \
|
||||
CAP_VFAT_RUNTIME_PARAM \
|
||||
CAP_CHUID \
|
||||
CAP_SHUTDOWN_AUTO_RETRY
|
||||
|
||||
echo -e ${CAPS} > "${CAP_FILE}"
|
||||
|
||||
# LINGUAS support
|
||||
einfo "\n \t VDR supports the LINGUAS values"
|
||||
|
||||
lang_po
|
||||
|
||||
einfo "\t Please set one of this values in your sytem make.conf"
|
||||
einfo "\t LINGUAS=\"${LING_PO}\"\n"
|
||||
|
||||
if [[ -z ${LINGUAS} ]]; then
|
||||
einfo "\n \t No values in LINGUAS="
|
||||
einfo "\t You will get only english text on OSD \n"
|
||||
fi
|
||||
|
||||
strip-linguas ${LING_PO} en
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# # trick makefile not to create a videodir by supplying it with an existing
|
||||
# # directory
|
||||
emake \
|
||||
VIDEODIR="/" \
|
||||
DESTDIR="${D}" install || die "emake install failed"
|
||||
|
||||
keepdir "${PLUGIN_LIBDIR}"
|
||||
|
||||
# backup for plugins they don't be able to create this dir
|
||||
keepdir "${CONF_DIR}"/plugins
|
||||
|
||||
if use html; then
|
||||
dohtml *.html
|
||||
fi
|
||||
|
||||
dodoc MANUAL INSTALL README* HISTORY CONTRIBUTORS
|
||||
|
||||
insinto /usr/share/vdr
|
||||
doins "${CAP_FILE}"
|
||||
|
||||
if use alternatechannel; then
|
||||
insinto /etc/vdr
|
||||
doins "${FILESDIR}"/channel_alternative.conf
|
||||
fi
|
||||
|
||||
chown -R vdr:vdr "${D}/${CONF_DIR}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "It is a good idea to run vdrplugin-rebuild now."
|
||||
|
||||
elog "To get nice symbols in OSD we recommend to install"
|
||||
elog "\t1. emerge media-fonts/vdrsymbols-ttf"
|
||||
elog "\t2. select font VDRSymbolsSans in Setup"
|
||||
elog ""
|
||||
elog "To get an idea how to proceed now, have a look at our vdr-guide:"
|
||||
elog "\thttps://wiki.gentoo.org/wiki/VDR"
|
||||
}
|
||||
Reference in New Issue
Block a user