live, Makefile, nfs

  • Eine wirklich gute Idee habe ich auch nicht. Man könnte aber eine Variable SUDO ins Makefile einbringen, die standardmäßig leer ist, bei Aufruf des Makefiles per SUDO=sudo make install aber erlauben würde, die Installation mit Abfrage zur Erweiterung der Zugriffsrechte auszustatten, beispielsweise:

    Code
    $(SOINST): $(SOFILE)
    	$(call PRETTY_PRINT,"IN" $<)
    	$(Q)$(SUDO) install -D $< $@

    Oder alternativ (wenn man darauf verzichten kann, sudo noch Parameter mitgeben zu können):

    Code
    $(SOINST): $(SOFILE)
    	$(call PRETTY_PRINT,"IN" $<)
    	$(Q)install -D $< $@ || $(Q)sudo install -D $< $@

    Per /etc/sudoers.d könnte das Ganze wohl auch automatisch ablaufen. Dennoch sollte man bedenken, dass die Verwendung von sudo immer auch Sicherheitsprobleme aufwerfen könnte.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.4 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Ich denke, man müsste den Git-Fehler abfangen:

    Oder so ähnlich ...

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Ich würde gen_version_suffix.h komplett weglassen.

    Die Datei generiert nur umständlich diese eine Information:

    Code
    #define VERSION_SUFFIX "_git_(..)"

    Dafür dann in das Makefile

    Code
    VERS_B := $(shell git branch | grep '^*' | sed -e's/^* //')
    VERS_H := $(shell git show --pretty=format:"%h_%ci" HEAD | head -1 | tr -d ' \-:')
    VERSION_SUFFIX := _git_$(VERS_B)_$(VERS_H)

    und zu den DEFINES hinzufügen

    Code
    -DVERSION_SUFFIX='"$(VERSION_SUFFIX)"'

    Der Ordner build_util könnte dann auch entfallen. Und im Makefile alles von VERSIONSUFFIX löschen.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • Gute Idee. Auf die Unterstützung der "alten" Versionierungssysteme (in diesem Fall CVS) kann man wohl mittlerweile verzichten.

    Ich fände es noch gut, wenn in VERSION_SUFFIX vermerkt würde, ob der Commit "clean" ist oder ob modifizierte Dateien vorliegen:

    Code
    VERS_B := $(shell git branch | grep '^*' | sed -e's/^* //')
    VERS_H := $(shell git show --pretty=format:"%h_%ci" HEAD | head -1 | tr -d ' \-:')
    VERS_P := $(shell git status -uno --porcelain | grep -qc . && echo "_patched")
    VERSION_SUFFIX := _git_$(VERS_B)_$(VERS_H)$(VERS_P)

    Ansonsten kann man in About ("?") nicht unterscheiden, ob man einen genuinen oder einen gepatchten Commit gebaut hat und gerade testet. Ich füge einen solchen About-Screenshot oft meinen Rückmeldungen bei, um deutlich zu machen, dass ein Problem schon im offiziellen Repository und nicht in lokalen Anpassungen zu suchen ist.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.4 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Zusatzfrage, was passiert eigentlich, wenn jmd kein 'git' command im Pfad hat?


    Das Problem ändert sich durch die Makefile Änderung ja nicht, aber wenn man die Stelle anschaut..

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • … oder gar nicht in einen Git-Repository baut, weil das bspw. nur in einem expandierten Tarball passiert. Auch version-util hat das auch nicht sauber unterschieden.

    Wie wäre es also damit:

    Code
    ifneq ($(shell which git),)
      ifeq ($(shell test -d .git || echo void),)
        VERS_B := $(shell git branch | grep '^*' | sed -e's/^* //')
        VERS_H := $(shell git show --pretty=format:"%h_%ci" HEAD | head -1 | tr -d ' \-:')
        VERS_P := $(shell git status -uno --porcelain | grep -qc . && echo "_patched")
        VERSION_SUFFIX := _git_$(VERS_B)_$(VERS_H)$(VERS_P)
        $(info VERSION_SUFFIX = $(VERSION_SUFFIX))
      endif
    endif

    Der erste Aufruf prüft, ob Git verfügbar ist, der zweite, ob das Makefile innerhalb eine Repositories ausgeführt wird.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.4 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Ansatz ist gut, aber wenn kein git vorhanden ist, fehlt einfach der zweite Teil still und leise. Vllt. wäre ein 'non-git' oder etwas ähnliches besser.

    Mal abwarten, was Markus zu der Idee als solches denkt.

    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler
    Display Spoiler


    to spoil
    verderben
    beschädigen
    plündern
    behindern
    berauben
    vereiteln
    rauben
    zerstören [fig.] [verderben, verunstalten]
    vergällen
    verhageln [fig.]

  • > Mal abwarten, was Markus zu der Idee als solches denkt.

    Ich bin glücklich, wenn es bei bei Euch problemlos baut. git sollten wir unterstützen, andere Versionierungssysteme sind optional und müssen nicht unterstützt werden.

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Im git ist ein Update, basierend auf Euren Vorschlägen. Bitte testen.

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!