[1] MLD-5.x / Entwicklung / Wie wird ein Patch bei der Paketerstellung angewandt?
 

Offline maf

  • MLD-Tester
  • Member
  • ******
  • Beiträge: 92
    • Profil anzeigen
Ich habe einen Patch, den ich zuvor unter yaVDR für ein Plugin erstellt hatte, in das Unterverzeichnis src des Pakets kopiert, das ich erstellen möchte. Der Name der Patch-Datei enthält den Namen des Pakets und endet mit '.patch'. Bei cd PACKAGENAME; make allein wird der Patch allerdings nicht angewandt. Auch bei cd PACKAGENAME; make patch nicht. Was muss ich tun, damit ein Patch bei der Paketerstellung angewandt wird?
« Letzte Änderung: Juni 18, 2019, 18:35:30 von maf »

Offline Walter

  • Adv. Member
  • ***
  • Beiträge: 173
    • Profil anzeigen
Wie wird ein Patch bei der Paketerstellung angewandt?
« Antwort #1 am: Juni 18, 2019, 18:51:38 »
Hallo,
Im Makefile vom vdr findet sich dies ?
$(MAKE) patch src_path=$@und im Makefile.plugin dies
$(MAKE) patch src_path=$@ src_name=_$(pluginname)_
« Letzte Änderung: Juni 18, 2019, 18:55:01 von Walter »

Offline maf

  • MLD-Tester
  • Member
  • ******
  • Beiträge: 92
    • Profil anzeigen
Wie wird ein Patch bei der Paketerstellung angewandt?
« Antwort #2 am: Juni 18, 2019, 20:17:22 »
Danke für Deine Hinweise.

Die Regel in Makefile.plugin sieht eigentlich vielversprechend aus:
src/$(pluginname)-%:
        if [ -n "$(src_url)" ]; then \
                $(MAKE) -f ../Makefile.getfile file=src/$(name).tgz version=$(version) url='$(src_url)'; \
        else \
                $(MAKE) -f ../Makefile.getfile file=src/$(name).tgz version=$(version) rule='$(src_rule)'; \
        fi
        rm -rf $@ $@-src
        mkdir -p $@-src
        tar xf src/$(name).tgz -C $@-src
        mv $@-src/* $@
        rm -r $@-src
        ln -fns $(@F) src/$(pluginname)
        $(MAKE) patch src_path=$@ src_name=_$(pluginname)_
Aber das Verzeichnis src/$(pluginname)-% wird bereits im Zuge von 'make checkout' angelegt, die Regel deshalb nie angewandt.

Ich habe es deshalb mit
make patch src_path=$PWD/src/PACKAGENAME-PACKAGEVERSIONversucht. Das funktioniert zwar, sieht aber nicht wie die "richtige" Lösung aus.

Ich suche also immer noch nach allgemeingültigen Vorgehensweise: Wie kann man dafür sorgen, dass ein Patch, den man nach dem 'make checkout' in das Verzeichnis src kopiert, beim Erstellen des Pakets angewandt wird?

Offline P3f

  • Administrator
  • Expert Member
  • ********
  • Beiträge: 1460
    • Profil anzeigen
Wie wird ein Patch bei der Paketerstellung angewandt?
« Antwort #3 am: Juni 18, 2019, 21:19:10 »
Hallo maf,

bisher hat bei uns immer geklappt, das die Patche eingebaut / mit eingesetzt werden, sobald man sich an die Namenskonvention hält. Ich habe hier mal ein Beispiel am vdr-plugin-epgsearch Plugin.

pit@MLD-5:~/nightbuild/amd64/vdr-plugin-epgsearch$ cd src/
pit@MLD-5:~/nightbuild/amd64/vdr-plugin-epgsearch/src$ ls -l
insgesamt 60
-rw-r--r--  1    pit pit        951 Jan  7 18:36 11_epgsearch_menue.patch
-rw-r--r--  1    pit pit      40816 Jan  7 18:36 12_epgsearch_README.patch
lrwxrwxrwx  1    pit pit         20 Jun 17 16:08 epgsearch -> epgsearch-2019.04.11
drwxr-xr-x 11    pit pit      12288 Jun 17 21:13 epgsearch-2019.04.11
-rw-r--r--  1    pit pit        393 Jan  7 18:36 epgsearchcats.conf

Dort kannst Du sehen, das es 2 Patche gibt die eingebunden werden sollen.

Hilft Dir das als Beispiel?

Ansonsten schreib doch mal dein Patch hier rein, oder schick uns den zu. Dann schauen wir es uns an.


Gruß,

Pit
----------------------------------------------------------------------
VDR 1:(MLD 5.4-64), ZOTAC ION ITX F-E, 1GB 1033, ATRIC-Einschalter, ImonLCD, Cinergy S2 HD
VDR 2 MLD-BPI: BananaPI | 16 GB SD-Card | MLD 5.3 in Entwicklung
MLD-WTK: WeTek-Play | 8 GB MicroSD-Card | MLD 5.3 als SatIP-Server

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Beiträge: 20197
    • Profil anzeigen
    • ClausMuus.de
Wie wird ein Patch bei der Paketerstellung angewandt?
« Antwort #4 am: Juni 18, 2019, 21:21:38 »
Wenn Du die Sourcen des Plugins mit eincheckst, dann müssen da drin bereits alle Patches angewendet sein. Wenn Du trotzdem Patches dazu packst, dann dient das lediglich der Dokumentation.
Normalerweise checken wir die Sourcen nicht mit ein. Das wird nur bei einigen wenigen Plugins gemacht, bei denen die Sourcen nicht zuverlässig verfügbar sind, oder nicht unter einer festen URL abrufbar sind.
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline maf

  • MLD-Tester
  • Member
  • ******
  • Beiträge: 92
    • Profil anzeigen
Wie wird ein Patch bei der Paketerstellung angewandt?
« Antwort #5 am: Juni 19, 2019, 12:10:07 »
Wenn Du die Sourcen des Plugins mit eincheckst, dann müssen da drin bereits alle Patches angewendet sein. Wenn Du trotzdem Patches dazu packst, dann dient das lediglich der Dokumentation.
Normalerweise checken wir die Sourcen nicht mit ein. Das wird nur bei einigen wenigen Plugins gemacht, bei denen die Sourcen nicht zuverlässig verfügbar sind, oder nicht unter einer festen URL abrufbar sind.

Verstanden. Dann habe ich bei vdr-plugin-svdrpservice einfach nur "Pech gehabt", ein Plugin mit eingecheckten Sourcen zu erwischen.

Offline maf

  • MLD-Tester
  • Member
  • ******
  • Beiträge: 92
    • Profil anzeigen
Wie wird ein Patch bei der Paketerstellung angewandt?
« Antwort #6 am: Juni 19, 2019, 12:31:22 »
Ansonsten schreib doch mal dein Patch hier rein, oder schick uns den zu. Dann schauen wir es uns an.

Ich habe meinen Patch in einem eigenen Thread zur Diskussion gestellt.

[1] MLD-5.x / Entwicklung / Wie wird ein Patch bei der Paketerstellung angewandt?
 



Benutzer Online Benutzer Online

0 Mitglieder und 1 Gast betrachten dieses Thema.