epgsearch - Suchtimer und Ersatz für VDR's Standard-Programm-Menü
EPG-Search kann als Ersatz für VDR's Standard-Programm-Menü verwendet werden. Es sieht genauso aus, erweitert es aber um einige zusätzliche Funktionen.
Ein weiterer Punkt sind die sog. Suchtimer die dafür sorgen, dass Timer automatisch programmiert werden.
- Befehle für EPG-Einträge mit verschiedenen integrierten Befehlen wie z.B. 'Wiederholungen anzeigen', 'Suche anlegen'. Man kann eigene Befehle hinzufügen, um z.B. einen VDRAdmin Autotimer anzulegen.
- Bis zu 4 weitere Zeitpunkte im Menü 'Was läuft jetzt?' neben 'Jetzt' und 'Nächste', sowie ein optionales Favoritenmenü.
- Suche im EPG: Anlegen von wiederverwendbaren Abfragen, die auch als 'Suchtimer' verwendet werden können.
- Suchtimer: Sucht im Hintergrund nach Sendungen und erzeugt einen Timer bei passenden EPG-Einträgen (ähnlich zu VDRAdmins Autotimern) oder informiert über die Sendung via OSD.
- Vermeidung von doppelten Aufnahmen der gleichen Sendung * Timer-Vorschau * Erkennung abgebrochener Aufnahmen * Fuzzy-Vergleich von Sendungen
- Fortschrittsbalken in 'Jetzt' und 'Nächste'
- Zeit im Menü 'Jetzt', 'Nächste' kann per Tastendruck verschoben werden, z.B. was läuft 'Jetzt' + 30 Minuten
- Startmenü 'Programm' oder 'Jetzt' einstellbar.
- das Menü zur detaillierten EPG-Anzeige (Zusammenfassung) erlaubt den Sprung zur vorherigen/nächsten Sendung
- Unterstützung erweiterter EPG-Infos in Suchtimern
- Erweiterung des Timer-Edit-Menüs um Verzeichnisse, benutzerdefinierte Wochentage und Untertitel-Auswahl
- Timer Konfliktcheck, informiert über OSD-Meldung
- Timer Konfliktmenü, zeigt die Konflikte an und erleichtert die Konfliktlösung
- Email-Benachrichtigungen über Suchtimer-Updates und Timer-Konflikte
Funktioniert nur mit >= vdr-1.3.46.
Teile der Quelltexte basieren auf dem repeating-epg-patch von Gerhard Steiner, der mir die Erlaubnis gab, diese zu verwenden. Danke für seine Arbeit!
1. Beschreibung 1.1 Menü Befehle 1.2 Menü Suche 1.2.1 Menü Suche editieren 1.2.2 Menü Suchergebnisse 1.3 Erweitertes 'Jetzt' und 'Nächste' 1.4 Menü Setup 23. Suchtimer 2.1 'Wiederholungen vermeiden' - Im Detail 2.2 Wie funktioniert der Vergleichstest zwischen 2 Sendungen? 2.3 Wie und wo wird der Vergleichstest eingesetzt? 3. Verwendung der Suche durch andere Plugins oder Skripte 4. Verwendung erweiterter EPG Infos 5. Ersetzen des Standardmenü 6. Addons
Auf den ersten Blick sieht EPG-Search wie der Programm-Menü-Punkt des VDR aus. Ein Tastendruck auf '0' schaltet die Farbtasten um, so dass weitere Funktionen erreicht werden können (die vorgegebene Zuweisung kann per Setup angepasst werden):
Dieses Menü zeigt Befehle an, die auf den ausgewählten Menüeintrag angewandt werden können. Es gibt 8 vorgegebene Befehle:
- Wiederholung: Zeigt Wiederholungen an - Aufnehmen - Umschalten - Suche anlegen: schaltet zum Suchmenü und erzeugt eine Suche mit dem Namen der aktuellen Sendung als Suchbegriff (um die manuelle Erfassung zu vermeiden - Suche in Aufnahmen: durchsucht die Aufnahmen nach einer Sendung mit diesem Namen - Als 'bereits aufgezeichnet' markieren: Hiermit wird die ausgewählte Sendung in die Datei epgsearchdone.data übernommen und epgsearch angewiesen, diese Sendung nicht aufzunehmen, falls der zugehörige Suchtimer mit "Wiederholung vermeiden" geschaltet ist. Ein bereits erzeugter Timer wird beim nächsten Suchtimer-Update automatisch gelöscht. - In/Aus Umschaltliste?: Zum Bearbeiten der Umschaltliste. Wenn eine Sendung in der Umschaltliste enthalten ist, wird kurz vor Beginn eine Ankündigung eingeblendet und dann umgeschaltet. Um die gesamte Umschaltliste einzusehen, bitte 'Suche/Aktionen/Zeige Umschaltliste' aufrufen. - Erzeuge Ausschlussliste: Eine Ausschlussliste wird verwendet um bestimmte Sendungen bei der Verwendung von Suchtimern zu ignorieren. Ein Suchtimer kann beliebige Ausschlusslisten verwenden.
Man kann eigene Befehle hinzufügen, indem man die Datei epgsearchcmds.conf im epgsearch-Konfig-Verzeichnis editiert. Eine Beispiel-Datei mit Bespielscripts liegt dem Plugin bei (s. Unterverzeichnis 'scripts', stammt von vdr-wiki.de. Danke an die Autoren).
Das Format der Datei ist identisch zu VDRs commands.conf oder reccmds.conf. Wenn ein Befehl ausgeführt wird, werden folgende Parameter übergeben:
$1: Titel des Programmeintrags $2: Startzeit als time_t-Wert (wie im Shutdown-Skript) $3: Endzeit $4: Programmplatz $5: langer Kanalname $6: Untertitel des Programmeintrags, "" falls nicht vorhanden
Zum Ausführen eines Befehls aus dem Hauptmenü ohne Öffnen des Befehlsmenüs genügt es, die zugehörige Nummer des Befehls zu drücken.
Hier kann man eine Suche im EPG erzeugen, editieren, löschen und ausführen. Bedienung und Verhalten ist ähnlich zu VDR's Timer-Menü.
Das meiste in diesem Menü ist selbsterklärend, deshalb nur einige Anmerkungen zu:
Mit 'Blau' kann man auch eine Vorlage für eine Suche übernehmen. Falls eine Vorlage als Standard definiert wurde, wird bei einer neuen Suche automatisch der Inhalt der Standard-Vorlage verwendet.
Hinweis: Die unscharfe Suche ist auf 32 Zeichen begrenzt!
Eine Beschreibung des Suchprozesses gibt es im MANUAL.
ACHTUNG: Nach einer Änderung der Kanal-Reihenfolge sollten unbedingt diese Einstellungen der Suchtimer kontrolliert werden!
Die benutzerdefinierte Auswahl findet sich am Ende der Liste Son, Mon, ..., Sam, benutzerdefiniert
Wenn man erweiterte EPG-Infos von einem Provider erhält, können im Verzeichnis-Eintrag auch Variablen wie ``%Genre%'' oder ``%Category%'' verwendet werden. Diese werden durch die aktuellen erw. EPG-Infos ersetzt, sobald ein Timer erzeugt wird.
Siehe MANUAL 'Using variables in the directory entry of a search timer')
Um den Status 'Als Suchtimer verw.' zu ändern, ohne das Menü zu öffnen, kann die Taste '2' verwendet werden. Dies ruft direkt den 2. Befehl im Befehlsmenü auf.
Dieses Menü zeigt die Suchergebnisse an. Ein 'T' sagt aus, dass es zu diesem Eintrag bereits einen Timer gibt, ein 't', dass es nur teilweise aufgenommen wird, also wie im Standard-Programm-Menü.
Im Setup können bis zu 4 zusätzliche Zeiten, als Erweiterung zu 'Jetzt' und 'Nächste', angegeben werden um die Taste Grün zu erweitern. Z.B. 'nachmittags', 'abends', 'spätabends'. Zeiten, die bereits verstrichen sind, werden übersprungen, man erhält abends also kein 'nachmittags'. Ausnahme: Ist ein Zeitpunkt nicht mehr als 20 Stunden in der Zukunft wird das Menü des nächsten Tages angezeigt. In diesen Menü kann die aktuell angezeigte Zeit durch Drücken auf FastRew und FastFwd verschoben werden um die Zeit nach hinter oder vorne zu verstellen. Falls diese Tasten auf der Fernbedienung nicht existieren, kann diese Funktion durch Umschalten mit '0' erreicht werden. Die Tasten Grün und Gelb wechseln dann zu '<<' und '>>'. Das Umschalten kann über das Setup angepasst werden. Man kann einen Fortschrittsbalken im Menü 'Jetzt'/'Nächste' anzeigen lassen. Falls text2skin verwendet wird, sollte die Option ``text2skin'' in den Setup-Optionen ``Zeige Fortschrittsbalken in 'Jetzt'''/``Zeige Fortschrittsbalken in 'Nächste''' verwendet werden (Die Option 'graphisch' kann ebenfalls mit text2skin funktionieren, das ist aber abhängig vom gewählten skin)
Nicht alle Sender liefern eine vernünftige Sendungskennung. Deshalb kann hier die Standardeinstellung für jeden Kanal einzeln gesetzt werden. Bei der Programmierung eines manuellen Timers wird diese im Timer-Edit-Menü vorgegeben, falls das epgsearch-eigene Menü benutzt wird.
Wichtig: wenn der EPG aus einer externen Quelle bezogen wird, sollte dafür gesorgt werden, dass die Suchtimer-Updates während des EPG-Updates abgeschaltet sind. Der Grund dafür ist, dass epgsearch Timer löscht, denen keine Sendungen zugeordnet sind. Während der neue EPG an VDR übermittelt wird, kann diese Situation auftreten. Am einfachsten geht das mit dem SVDRP-Befehl SETS im EPG-Update-Skript:
svdrpsend.pl plug epgsearch SETS off
<das EPG update Skript>
svdrpsend.pl plug epgsearch SETS on
Bitte ebenfalls den Abschnitt 'Working with the timer conflict menu' im MANUAL berücksichtigen.
(Bitte sicherstellen, dass 'sendEmail.pl' im Pfad der ausführbaren Dateien liegt und 'epgsearchupdmail.templ' und 'epgsearchconflmail.templ' im Konfig-Verzeichnis von epgsearch existieren!)
- neue Timer angelegt hat - vorhandene Timer geändert hat - Timer gelöscht hat, weil diese wegen EPG-Änderungen oder anderen Benutzeraktionen nicht mehr gültig sind.
(Dazu muss ebenfalls die Option 'Verwende Suchtimer' im Suchtimer-Setup aktiv sein.)
(Dazu muss ebenfalls die Option 'Nach jedem Suchtimer-Update' oder 'nach ... Minuten' im Timer-Konflikt-Setup aktiv sein.)
- sendEmail.pl: ein einfaches Skript, das auch auf Systemen ohne konfigurierten Mailserver den Versand von Emails erlaubt. Das Skript wird mit epgsearch ausgeliefert und sollte im $PATH liegen. - sendmail: setzt ein korrekt aufgesetzes Mailsystem voraus.
Nach Angabe der Email-Konto-Daten bitte mit 'Test' prüfen, ob alles funktioniert. Wenn mit 'sendEmail.pl' gearbeitet wird, sollte am Ende der Test-Ausgabe etwas wie 'Email sent successfully' auftauchen. Die Testfunktion gibt es bei der Methode 'sendmail' leider nicht.
Bitte ebenfalls den Abschnitt 'Email notifications' im Manual berücksichtigen.
Das ist ziemlich das gleiche wie VDRAdmin's Autotimer, benötigt jedoch kein externes Programm. Beim Anlegen einer Suche kann man die Option setzen, ob diese als Suchtimer verwendet werden soll. Das Plugin sucht nun im Hintergrund in bestimmten Zeitabständen (->Setup->Update Intervall [min]) nach passenden Sendungen und erzeugt Timer für die Ergebnisse. Gerade für Serien ist dies sehr praktisch, weshalb es in der Suche die Option ``Serienaufnahme'' gibt. In diesem Fall wird ein Timer mit zusätzlichem Episodennamen angelegt. Die Aufnahme erscheint dann in einem Ordner mit dem Seriennamem. Falls es keinen Episodennamen gibt wird stattdessen automatisch Datum und Uhrzeit verwendet.
Die Suchtimer-Funktion muss ausserdem im Setup aktiviert werden. Falls für SVDRP nicht der Standardport 2001 verwendet wird, bitte ebenfalls im Setup eintragen.
Falls man eine Hintergrund-Suche manuell anstoßen will, genügt ein
touch /etc/vdr/plugins/epgsearch/.epgsearchupdate
Das kann ebenfalls Teil des shutdown-Skripts sein (hier sollte man dann noch einen sleep von ein paar Sekunden anhängen, damit das Plugin Zeit hat, den Scan zu beenden).
Mehr Infos zu Suchtimern gibts im MANUAL unter 'Description of the search process' und 'How do Search Timers work?'.
Hier soll erklärt werden wie die Option 'Wiederholungen vermeiden' eines Suchtimers funktioniert.
Nicht immer lässt sich durch entsprechende Suchkriterien vermeiden, dass auch Timer für Wiederholungen erzeugt werden.
Um das zu verhindern, versucht das Feature 'Wiederholungen vermeiden' vor dem Programmieren einer Sendung zu prüfen, ob eine gleiche Sendung schon mal aufgenommen wurde oder ein Timer existiert, der die gleiche (nicht dieselbe!) Sendung aufzeichnet. Ist dies der Fall, wird kein Timer für die zu überprüfende Sendung erzeugt.
Für den Test auf Gleichheit zwischen 2 Sendungen gibt es viele Einstellmöglichkeiten beim Suchtimer. Man kann wählen, ob Titel, Untertitel, Beschreibung und bestimmte Kategorien innerhalb der Beschreibung einer Sendung mit den jeweiligen Angaben einer anderen Sendung verglichen werden sollen.
Der Vergleich der einzelnen Angaben selbst prüft immer auf vollständige Identität. Die Beschreibung einer Sendung bildet hier aber eine Ausnahme. Hier wird zunächst alles aus dem Text entfernt, das einer Kategorie-Angabe gleicht, z.B. 'Bewertung: Tagestipp'. Als Kategorie-Angabe wird alles gewertet, was am Anfang einer Zeile maximal 40 Zeichen hat, von einem ':' gefolgt wird und dann maximal weitere 60 Zeichen hat. Hintergrund für dieses Rausschneiden sind die oft vorhandenen Bewertungen wie 'Tagestipp', die bei der Wiederholung aber nicht mehr enthalten sind.
Der verbleibende Text wird nun zunächst in der Länge verglichen. Ist der Unterschied größer als 90% wird die Beschreibung als unterschiedlich gewertet. Andernfalls wird über den Levinsthein-Distance-Algorithmus (LD), der einen Fuzzy-Textvergleich macht, ein Test vorgenommen. Hier wird die Beschreibung als gleich akzeptiert, wenn LD mehr als 90% Identität zurückgibt.
Da dieser Algorithmus ziemlich laufzeitintensiv ist (O(mn)), sollte nach Möglichkeit nicht nur 'Vergleiche Beschreibung' als einziges Vergleichskriterium ausgewählt werden, sondern am besten immer nur in Kombination mit anderen Vergleichen.
Wie zuvor erwähnt wird bei einem Suchtimer-Update für Suchtimer mit diesem Feature zusätzlich geprüft, ob eine Sendung bereits irgendwann schon aufgezeichnet wurde, oder in der Timerliste ein Timer steht, der die gleiche Sendung aufzeichnen würde. Letzteres sollte klar sein, während für ersteres das File epgsearchdone.data ins Spiel kommt.
Nach jeder Aufnahme, die durch einen Suchtimer mit 'Wiederholung vermeiden' erzeugt wurde, werden alle Angaben zu dieser Sendung im genannten File gespeichert. Über das Aktionenmenü im Menü 'Suche' kann man sich alle Sendungen, die ein solcher Timer bisher aufgenommen hat, anzeigen lassen und diese auch bearbeiten. In dieses File werden nur Aufnahmen aufgenommen, die bezüglich der Timerangaben korrekt begonnen und auch beendet wurden. D.h. dass teilweise unvollständige Aufnahmen nicht registriert werden und somit beim nächsten Suchtimer-Update automatisch ein neuer Timer für diese Sendung erzeugt wird, falls gefunden.
Wie verwenden?
Man sieht, dass das ganze Feature stark von der Qualität und dem Umfang des verwendeten EPGs abhängt. Hat man einen entsprechenden Suchtimer angelegt, ist es sinnvoll erstmal zu prüfen, ob er auch das richtige macht. Dazu gibt es für solche Timer im Suchergebnis-Menü auf der Taste 'Blau' die zusätzliche Belegung 'Timer-Vorschau'. Sendungen, die noch keinen Timer haben ('T'), aber für die einer aufgrund des Features beim nächsten Suchtimer-Update programmiert würde, haben dort ein 'P' stehen.
Hinweis: Möchte man wegen Konflikten einen bereits programmierten Timer nicht verwenden, dann sollte dieser im Timermenü deaktiviert werden. Beim nächsten Suchtimer-Update wird dann einfach die nächste mögliche Wiederholung programmiert, falls vorhanden.
Wenn es nicht richtig funktioniert :-)
Damit das Programmieren oder Nicht-Programmieren von Timern gerade bei Verwendung dieses Features besser nachvollziehbar ist, wurde ein Logfile für epgsearch eingeführt. Startet man epgsearch mit einem Loglevel >= 2 (-P'epgsearch -v 2) werden beim Suchtimer-Update in der Datei epgsearch.log hilfreiche Infos abgelegt. Siehe MANUAL für 'command line options'.
Siehe epgsearch(4)
.
Einige EPG Provider liefern zusätzliche EPG Infos wie die Art der Sendung, das Video und Audio Format, die Besetzung,... Mit tvmovie2vdr oder epg4vdr können diese Daten in den VDR importiert werden.
Somit kann man also z.B. einfach einen Suchtimer erzeugen, der alle Tagestipps findet, die in 16:9 ausgestrahlt werden. Um diese Informationen in Suchtimern zu verwenden, muss anhand der Datei epgsearchcats.conf im epgsearch-Konfig-Verzeichnis eine Konfiguration vorgenommen werden.
Das Format dieser Datei ist folgendes:
ID|category name|name in menu|values separated by ','(option)|searchmode(option)
- 'ID' sollte eine eindeutige ganze Zahl sein Achtung: Ändert man später aus irgendeinem Grund diese ID müssen die Suchtimer neu editiert werden! - 'category name' ist der Name der Info lt. EPG Provider, z.B. 'Genre' - 'name in menu' ist der Name im Menü von epgsearch. - 'values' ist eine optionale Liste von Werten für diese Info. - 'searchmode' gibt optional an, wie gesucht werden soll: 0 - Der gesamte Begriff muss als Substring erscheinen 1 - Die einzelnen Worte (getrennt durch ',', ';', '|' oder '~') müssen alle als Substring auftauchen. Diese Einstellung ist der Standardwert. 2 - mindestens ein Wort (getrennt durch ',', ';', '|' oder '~') muss als Substring auftauchen 3 - exakte Übereinstimmung 4 - als regulärer Ausdruck
Beispiel-Dateien für epgsearchcats.conf kommen mit dem Plugin im Verzeichnis 'conf'. Einfach die passende ins epgsearch-Konfig-Verzeichnis als epgsearchcats.conf kopieren, VDR neu starten und dann das Eingabe-Menü eines Suchtimers aufrufen.
Weil das Aufsetzen einer neuen epgsearchcats.conf ziemlich lästig ist, habe ich ein kleines Tool 'createcats' mitgeliefert, das den Großteil der Arbeit erledigt. Es sollte mit dem Plugin übersetzt worden sein und sich im Quellverzeichnis befinden. Einfach folgendermaßen aufrufen:
createcats /pfad_zu/epg.data
Dieses Tool scannt nun die vorhandenen EPG infos und versucht daraus die erweiterten Infos zu extrahieren. Das Ergebnis ist eine neue epgsearchcats.conf, die aber noch editiert werden muss, weil sicher nicht alles genau passt. Danach ins epgsearch-Konfig-Verzeichnis kopieren. (Mehr über createcats im Manual 'Using createcats')
Details: epgsearch durchsucht die Zusammenfassung einer Sendung nach dem Namen einer Kategorie gefolgt von ': '. Das geschieht für alle Kategorien, für die im Suchtimer ein Wert gesetzt wurde. Die Suche berücksichtigt die Groß/Kleinschreibung sowohl bezüglich des Kategorie-Namens als auch des Wertes.
Um das Plugin als Ersatz für VDR's Standard-Menü zu verwenden, genügt es die Zeile
Green @epgsearch
in die Datei keymacros.conf zu setzen. Falls kein weiterer Menüeintrag im Hauptmenü erscheinen soll, dann den Eintrag des Plugins zunächst im Setup ausblenden. Um das Plugin trotzdem mit der Taste ``Grün'' aufrufen zu können, könnte man z.B. mein launcher-Plugin verwenden und die Zeile
Green @launcher x
in die keymacros.conf schreiben, wobei x die Position von epgsearch innerhalb des launcher listings ist.
Achtung: Versteckt man das Plugin ohne die Verwendung des launcher plugins oder anderer Patches, die das Aufrufen versteckter Plugins erlauben, erhält man das VDR-Standard-Menü beim Drücken von Grün. Ab VDR 1.3.32 sind dazu keine Patches oder Plugins mehr notwendig.
Ein weiterer Ansatz ist ein Patch gegen VDR, der das Standardmenü 'Programm' gegen epgsearch austauscht. Hierzu VDR mit dem Patch vdr-replace-schedulemenu.diff.gz aus dem Patches-Verzeichnis patchen. Danke an den Autor Uwe/egal@vdrportal. Bei Anwendung dieses Patches sollte der Eintrag
Green Schedule
heißen. Dieser Patch ist bereits in manchen Patchsammlungen, z.B. Bigpatch, enthalten.
Mit epgsearch werden 2 weitere 'Mini'-Plugins ausgeliefert. Beide Plugins erfordern, dass epgsearch ebenfalls installiert ist (epgsearch kann aber aus dem Hauptmenü ausgeblendet werden):
Viel Spass!
Christian Wieninger
Die ausführliche Beschreibung der internen Funktionen des Plugins findest Du in der Datei MANUAL, die dem Plugin beigelegt sein sollten.
Ob Du diese auf deinem System hast verrät dir
locate epgsearch*/MANUAL
Sollte Deine Distribution diese Dateien nicht enthalten, kannst Du sie dir online durchlesen
http://people.freenet.de/cwieninger/README.DE
http://people.freenet.de/cwieninger/README
http://people.freenet.de/cwieninger/MANUAL
epgsearch.conf(5)
, epgsearchcats.conf(5)
,
epgsearchcmds.conf(5)
, epgsearchdirs.conf(5)
,
epgsearchmenu.conf(5)
, epgsearchuservars.conf(5)
,
epgsearchdone.data(5)
, epgsearchswitchtimer.conf(5)
,
epgsearchblacklists.conf(5)
,
epgsearchchangrps.conf(5)
epgsearch.conf
Enthält die Suchtimer. Siehe epgsearch.conf(5)
.
epgsearchcats.conf
Enthält die Kategorien des erweiterten EPG. Siehe
epgsearchcats.conf(5)
.
epgsearchcmds.conf
Enthält Befehle ähnlich der commands.conf, die auf EPG-Einträge angewandt
werden können. Siehe epgsearchcmds.conf(5)
.
epgsearchdirs.conf
Enthält Pfade die beim Bearbeiten eines Suchtimers ausgewählt werden können.
Siehe epgsearchdirs.conf(5)
.
epgsearchmenu.conf
Enthält die vom User gewählte Konfiguration der OSD Menüdarstellung. Siehe
epgsearchmenu.conf(5)
.
epgsearchuservars.conf
Enthält die User-Variablen. Siehe epgsearchuservars.conf(5)
.
epgsearchdone.data
Enthält die done-Liste. Siehe epgsearchdone.data(5)
.
epgsearchswitchtimers.conf
Enthält die Umschalttimer. Siehe
epgsearchswitchtimer.conf(5)
.
epgsearchblacklists.conf
Enthält die Ausschlussliste. Siehe
epgsearchblacklists.conf(5)
.
epgsearchchangrps.conf
Enthält die Kanalgruppen. Siehe epgsearchchangrps.conf(5)
.
epgsearchtemplates.conf
Enthält die Vorlagen für Suchtimer. Siehe
epgsearchtemplates.conf(5)
.
Mike Constabel <epgsearch (at) constabel (dot) net>
Fehlerberichte bitte im Bugtracker.
http://www.vdr-developer.org/mantisbt/
Mailinglist:
http://www.vdr-developer.org/mailman/listinfo/epgsearch
Copyright (c) 2005-2006 Christian Wieninger
Dieses Programm ist freie Software. Es darf nach belieben benutzt, kopiert, modifiziert, verteilt und verkauft werden, solange niemand anderem das Recht abgesprochen wird dasselbe zu tun.