Posts by seahawk1986

    Ich dachte eigentlich, dass der VDR die problematischen Zeichen codiert... Beim : zum Beispiel klapp das...

    Das hängt davon ab, wie man --dirname setzt, vgl. Manpage

    Code
    1. --dirnames=path[,name[,enc]]
    2. Set the maximum directory path length to path (default is the maximum value allowed
    3. on the system). If name is also given, it defines the maximum directory name length
    4. (default is the maximum value allowed on the system). The optional enc can be 0 or
    5. 1, and controls whether special characters in directory names are encoded as hex
    6. values (default: 0). If path or name are left empty (as in ",,1" to only set enc),
    7. the defaults apply. The length of the video directory name and that of the actual
    8. recording directory is subtracted from path, to make sure the directory path will
    9. never become too long.

    Aber da $ (mit Einschränkungen) in Windows-Dateinamen erlaubt ist, scheint das nicht speziell behandelt zu werden: http://git.tvdr.de/?p=vdr.git;…619c752a9d21;hb=HEAD#l591 ff.

    Das temporäre Skript, das eigentlich kopiert sieht so aus:

    Wenn du da keine Shell-Expansionen mehr in den Strings machen willt, quote die mit einfachen Anführungszeichen, um potentielle Probleme zu vermeiden - $_ ist ja eine Variable in der bash.

    Code
    1. $ echo "/video/Home_Economics/Drei_Kugeln_Eis_$_6,39__(S01E04)/2022-05-03.20.33.23-0.rec"
    2. /video/Home_Economics/Drei_Kugeln_Eis_,39__(S01E04)/2022-05-03.20.33.23-0.rec
    3. $ echo '/video/Home_Economics/Drei_Kugeln_Eis_$_6,39__(S01E04)/2022-05-03.20.33.23-0.rec'
    4. /video/Home_Economics/Drei_Kugeln_Eis_$_6,39__(S01E04)/2022-05-03.20.33.23-0.rec

    Das Problem ist, dass deine Fernbedienung jeden Tastencode zwei mal mit ca. 112 ms Abstand wiederholt. Dadurch muss man also für etwas über 224 ms nachfolgende Tastendrücke ignorieren, bevor man einen weiteren Tastencode für die gedrückt gehaltene Taste (der ca. 336 ms nach dem initialen Tastendruck kommt) als Tastenwiederholung werten kann. Ggf. müsste man dann nachfolgende Tastendrücke ebenfalls filtern, so dass man sich im schlechtesten Fall bei gedrückt gehaltener Taste nur über 3 Menüitems pro Sekunde bewegen kann, ohne dass es zu Nachlaufen kommt, wenn man die Taste loslässt. Bei Universalfernbedienungen kann man z.T. die Zahl der gesendeten Tastenwiederholungen reduzieren, so dass die Fernbedienung insgesamt flotter wird.

    Damit entlädt er das angegebene Modul explizit:

    Ok, das kann ich noch in die Liste der Module aufnehmen - auf meinem System wird dvb_core automatisch entladen und dann beim Restore auch wieder geladen - passiert das bei dir nicht?

    Bist du noch mit focal unterwegs? Ich hatte das gestern nur mit Python 3.10 unter Ubuntu 22.04 probiert, für ältere Versionen braucht es noch andere Type-Annotationen:

    Ich fürchte das ist komplexer als die Logik, die ich damals aus dem Skript von e-tobi übernommen hatte - ich habe das gerade noch mal mit den snd_* Modulen auf meinem System durchgespielt:

    Da kann man wohl nicht einfach mit den gelisteten Modulen arbeiten, sondern man muss sich da an der Zahl der genutzten Instanzen entlang hangeln - also mit snd_hda_intel anfangen, weil das keine aktiven Instanzen hat, danach snd_hda_codec_hdmi und snd_hda_codec_realtek entfernen, dann snd_hda_codec_generic usw. - ich fürchte, das muss man iterativ lösen - kannst du mal schauen, ob dir das folgende Skript wie erwartet funktioniert?

    Warning: Stopping sendmail-client.service, but it can still be activated by:
    sendmail-client.path

    Systemd kann u.a. auch Service-Units durch Zugriff auf einen Pfad aktivieren: https://www.freedesktop.org/so…emd/man/systemd.path.html

    Wie man sieht wird sendmail immer wieder sofort neu gestartet, obwohl ich dem systemctl explizit sage, dass er stoppen soll.

    Was mache ich falsch?

    Du musst die Unit sendmail-client.path ebenfalls stoppen (also z.B. systemctl stop sendmail-client.path oder sicherer - damit niemand aus Versehen die Unit bis zum nächsten Reboot bzw. einem gegenteiligen Befehl starten kann: systemctl mask --runtime --now sendmail-client.{path,service}).

    Also nichts, was man im VDR Universum fixen könnte.

    Ich kann das als Würgaround im Paket abändern, wo die epglv.so hin installiert wird (habe ich gerade hochgeladen), aber IMHO ist das ein Problem des Debian-Pakets für MariaDB, dass da eine Unterscheidung zwischen Plugins für den Server und Plugins für die libmariadb-Clients eingeführt wird und es keine Möglichkeit gibt über mariadb_config an den richtigen Pfad für die Server-Plugins zu kommen.

    Von Hand bauen nutzt auch nichts, weil selbst mariadb_config den falschen Pfad liefert:

    Code
    1. root@Test-2204:mariadb_config --plugindir
    2. /usr/lib/x86_64-linux-gnu/libmariadb3/plugin

    Link in das richtige Verzeichnis umgeht erfolgreich das Problem.

    Das kann ja aber nicht die finale Lösung sein. Hat jemand eine Idee, wie man das sauber lösen kann ?

    Unter Arch Linux liefern sowohl mariadb_config als auch pkg-config das richtige Verzeichnis:

    Unter Ubuntu/Debian sieht das für mich nach einem Problem des Quell-Pakets aus - da wird u.a. die mariadb.pc für den Server durch einen Symlink auf die libmariadb.pc für den Client überschrieben, wodurch man da aus den fertigen Paketen erst gar nicht an das Plugin-Verzeichnis kommt: https://salsa.debian.org/maria…/latest/debian/rules#L169 f.


    Außerdem beendet sich mariadb_config mit einem Segfault, wenn man es ohne Argumente aufruft:

    Soweit ich das versehe, werden die Werte für das Plugin-Verzeichnis in mariadb_config von cmake bzw. dem Präprozessor statisch gesetzt (https://github.com/mariadb-cor…g/mariadb_config.c.in#L39 ff.) und meine Vermutung ist, dass da irgendwo in den Untiefen der cmake-Files (in

    libmariadb/cmake/install.cmake ab Zeile 99 werden Variablen gesetzt, die dazu passen würden)

    eine Sonderbehandlung für das Debian-Paket stattfindet. Leider ist das alles sehr bescheiden dokumentiert :S

    Ubuntu hat da am Mechanismus für die Ablage von Keys für Paketquellen recht kurz vor der Veröffentlichung der 22.04 herumgefummelt - es sollte genügen, wenn du eines der PPAs noch mal hinzufügst, dann holt er sich den Schlüssel und legt in korrekt ab: sudo add-apt-repository ppa:seahawk1986-hotmail/jammy-main

    In der PLUGIN.html, die dem VDR beiliegt, steht im Abschnitt "Construction and Destruction":

    The constructor shall initialize any member variables the plugin defines, but must not access any global structures of VDR. It also must not create any threads or other large data structures. These things are done in the Initialize() or Start() function later. Constructing a plugin object shall not have any side effects or produce any output, since VDR, for instance, has to create the plugin objects in order to get their command line help - and after that immediately destroys them again.

    Damit wäre es epg2vdr, das sich falsch verhält, weil es seinen EpgHandler statt in https://projects.vdr-developer…dr.git/tree/epg2vdr.c#n28 nicht erst im Rahmen der Initialize()-Methode registriert...

    Kann es sein, dass das ein Problem des VDR ist, weil der in http://git.tvdr.de/?p=vdr.git;…e52794c6ba52;hb=HEAD#l549 ff. die Plugins lädt, aber danach nicht aufräumt, bevor er sich beendet, wenn man vdr --version aufruft?


    Ich habe mal versuchsweise folgendes eingebaut und damit scheint der Segfault weg zu sein: